Форум: "Прочее";
Текущий архив: 2014.05.11;
Скачать: [xml.tar.bz2];
Вниздельфи жив ;-( нид хелп Найти похожие ветки
← →
Sergey Masloff (2013-11-08 13:35) [0]Прилетел тут мне нежданчик. Вводная есть некий унаследованный сервис (windows service) на дельфи. Исходник и автор утеряны лет 6 назад. Все эти годы он исправно трудился 24*7 и тут сломался. И все это на мою седую (лысую) голову (только думал что на дельфи точно программировать точно не буду больше). Но это лирика.
Вобщем из общих знаний о том что эта штука делает и частично декомпильнув понял что ничего особого эта штука не делает кроме того что постоянно ищет некий запущеный exe (еще и как ищет - уже смешно ну да ладно) и если его нет запускает через CreateProcess. Exe что-то (знаю что) делает и умирает. После этого цикл повторяется.
Вот что обломилось - CreateProcess отрабатывает без ошибки но что-то созданный процесс я больше не наблюдаю. Такое впечатление что только что созданный процесс тут же дохнет еще не начав ничего выполнять. Причем без каких-либо внешних признаков.
Код естественно не менялся. Что такое могло случиться и куда смотреть когда CreateProcess возвращает 0 но ничего (похоже) не криэйтит. Воспроизводится это естественно только на той машине
← →
Kerk © (2013-11-08 13:39) [1]А если этот ехешник запустить вручную, он работает? Предположу, что работает, иначе бы ты по-другому вопрос ставил :). Но может, показывает какие-нибудь окошки повышения привелегий, например, а из под сервиса этого сделать не может?
← →
Rouse_ © (2013-11-08 13:40) [2]
> куда смотреть когда CreateProcess возвращает 0 но ничего
Как обычно в GetLastError
← →
antonn © (2013-11-08 13:43) [3]региональные настройки не менялись? а то есть багопроги завернутые в глухие тру-кэтчи... :)
← →
Sergey Masloff (2013-11-08 14:05) [4]exe отдельно запускается ;-)
Окошек никаких нет.
Вообще смотрю и плАчу... кто-то:
- написал виндовый сервис просто для того чтобы по таймеру дергать процедуру в Oracle
- из сервиса проверяет запущен ли exe через
if FindWindow("TfmMainXXX", nil)<>0 then
- Внутри сервиса лежит здоровенная форма с тучей компонентов вообще никак не используемая. Видимо когда-то он был простым exe который переделали в сервис...
и это все с 2006 года проработало
← →
Dimka Maslov © (2013-11-08 14:13) [5]Вот именно поэтому у меня напрочь прибито обновление Венды - они что-то там обновят, а потом всё работать перестаёт. Это моё видение причины. А вообще запустить просто так процесс из службы уже давно как не получается, надо всякие там прибамбахи делать перед запуском.
← →
брат Птибурдукова (2013-11-08 14:25) [6]
> Sergey Masloff (08.11.13 14:05) [4]
Это надо продать здешнему любителю^Wпрофессионалу покера. Он изойдёт слезами счастья и перестанить постить свой трэшак в WinAPI…
← →
Kerk © (2013-11-08 14:52) [7]
> antonn © (08.11.13 13:43) [3]
>
> региональные настройки не менялись? а то есть багопроги
> завернутые в глухие тру-кэтчи... :)
Не из под сервиса программа ведь работает.
> Sergey Masloff (08.11.13 14:05) [4]
>
> exe отдельно запускается ;-)
> Окошек никаких нет.
Я бы все-таки для начала вопрос в привилегиями проверил сверху до низу.
Ты и сервис скорее всего работаете от имени разных юзеров. Здесь может быть причина.
← →
Плохиш © (2013-11-08 14:59) [8]
> Исходник и автор утеряны лет 6 назад. Все эти годы он исправно
> трудился 24*7 и тут сломался.
Значит программа не причём. Ищите, что в окружении поменяли или пишите новую.
← →
antonn © (2013-11-08 15:05) [9]
> Не из под сервиса программа ведь работает.
а сервис - это system, у нее не свои настройки?
← →
antonn © (2013-11-08 15:05) [10]а вообще там еще вопрос по домену (есть ли он) и наследуемым правам
← →
Kerk © (2013-11-08 15:17) [11]
> antonn © (08.11.13 15:05) [9]
>
> > Не из под сервиса программа ведь работает.
>
> а сервис - это system, у нее не свои настройки?
А, понял. Вероятно свои, да.
Ну, в общем, я голосую за то, чтоб искать разницу между юзерами из под которых запускается программа. Нюансов множество. Вплоть до наличия нужных путей в PATH.
← →
sniknik © (2013-11-08 15:52) [12]> Видимо когда-то он был простым exe который переделали в сервис...
или может работать и так и так... обычно так и делаю, если что, сопровождать/отлаживать удобнее как обычную программу.
← →
Sergey Masloff (2013-11-08 15:54) [13]Ладно пойду по простому пути
exe-шник и шедулер может пускать по расписанию а использовать сервис просто как дергалку по таймеру оракловской процедуры... на то есть джобы
кстати сервис не под системом работает а под собственной учеткой.
← →
Пит (2013-11-08 15:55) [14]Сергей, а вы полностью от дельфи ушли, всё уже переписали на .NET?
← →
Sergey Masloff (2013-11-08 16:28) [15]Пит (08.11.13 15:55) [14]
>Сергей, а вы полностью от дельфи ушли, всё уже переписали на .NET?
Я теперь поднимаю сельское хозяйство на другом участке.
Возглавил OLAP направление...
← →
Eraser © (2013-11-08 16:51) [16]
> Sergey Masloff (08.11.13 13:35)
> и тут сломался
сломался видимо потому, что поменяли ОС на какую-то более современную.
дело скорее всего в том, что в новых ОС нет доступа GUI к 0 терм, сессии, точнее он есть, но отобразить что-то пользователю не получится.
← →
Sergey Masloff (2013-11-08 17:01) [17]Eraser © (08.11.13 16:51) [16]
ОС естественно не менялась. винда 2008 сервер. На машине 120 Гб оперативки ;-)
← →
Eraser © (2013-11-08 17:03) [18]
> Sergey Masloff (08.11.13 17:01) [17]
да, это уже относительно новая ОС, созданная с использованием "новых технологий" ) глупый вопрос - а в системном журнале приложений/служб каких либо отметок о крэше нет?
← →
Inovet © (2013-11-08 17:16) [19]> [17] Sergey Masloff (08.11.13 17:01)
> винда 2008 сервер. На машине 120 Гб оперативки ;-)
В смысле - мало по современным меркам?
← →
antonn © (2013-11-08 18:51) [20]2008 не R2 - это времен висты, не такая уж и новая
← →
Медвешонок Порошог (2013-11-08 19:54) [21]Exe что-то (знаю что) делает и умирает.
так шедулер же. и выбросить сервис.
← →
Eraser © (2013-11-08 20:39) [22]
> antonn © (08.11.13 18:51) [20]
отличия висты от windows 8.1 минимальны, фактически та же ОС.
← →
antonn © (2013-11-08 21:46) [23]
> отличия висты от windows 8.1 минимальны, фактически та же
> ОС.
значительно поумневший UAC :)
← →
Иксик © (2013-11-08 21:56) [24]Банально, но спрошу: а если экзешку вручную запускаешь, процесс появляется? Журнал ничего не говорит?
← →
Kerk © (2013-11-08 22:47) [25]
> Иксик © (08.11.13 21:56) [24]
См [1] и [4] :)
← →
Омлет © (2013-11-08 23:06) [26]Про обновления уже говорили, но повторюсь - недавно прилетела заплатка - http://www.securitylab.ru/vulnerability/447301.php
вполне возможно, что исправили косячно, якобы горячая была... Не в то ли время начались проблемы?
← →
Styx (2013-11-08 23:56) [27]
> недавно прилетела заплатка
Вообще-то заплатки ещё нет вроде. Но TIFF-то тут причём?
← →
Иксик © (2013-11-09 00:40) [28]
> Kerk © (08.11.13 22:47) [25]
>
>
> > Иксик © (08.11.13 21:56) [24]
>
> См [1] и [4] :)
Сорри! "Чукча писатель" (с) :))
← →
Омлет © (2013-11-09 13:29) [29]
> Styx (08.11.13 23:56) [27]
> Вообще-то заплатки ещё нет вроде.
Вроде как 5-6 числа появилась: http://blogs.technet.com/b/msrc/archive/2013/11/05/microsoft-releases-security-advisory-2896666-v2.aspx
Сама заплатка тут: https://support.microsoft.com/kb/2896666
По времени совпадает, Windows Server 2008 в списке. Поэтому я и предположил, что админ применил "fix it", т.к. уязвимость критическая.
Кстати, там же лежит штука, откатывающая изменения, производимые заплаткой.
← →
Styx (2013-11-09 17:13) [30]Так там не заплатка, просто предлагается отключить TIFF кодек, пока не будет исправленного.
← →
Омлет © (2013-11-09 18:36) [31]> Styx (09.11.13 17:13) [30]
Да, ты прав.
← →
Разведка (2013-11-10 04:42) [32]Судя по тому, что все меньше и меньше требуются вакансии на hh.ru, job.ru программистов делфи, то всего скорей Delphi - умер.
← →
R.I.P. (2013-11-10 12:54) [33]Для космонавтов там тож вакансий нет. Ж)
← →
Sergey Masloff (2013-11-10 18:27) [34]Вот чем кончилось. Переписал то же самое своими словами (я ж не знаю что там за исходник) и заработало
Код типа
var
StartupInfo:TStartupInfo;
ProcessInfo:TProcessInformation;
begin
GetStartupInfo (Startupinfo);
LogReport("Step 1");
if not CreateProcess(nil,
PChar(ExtractFileDir(ParamStr(0))+"\someprog.exe param"),
nil,
nil,
false,
DETACHED_PROCESS,
nil,
nil,
StartupInfo,
ProcessInfo) then
begin
LogReport("Step 1");
end;
почему не на шедулере виндовом пока что - я что-то не пойму как в нем запускать чаще чем раз в 5 минут
← →
Inovet © (2013-11-10 18:35) [35]> [34] Sergey Masloff (10.11.13 18:27)
> как в нем запускать чаще чем раз в 5 минут
Если вписать "1 мин" вместо "5 мин"?
← →
Sergey Masloff (2013-11-10 18:41) [36]Inovet © (10.11.13 18:35) [35]
>Если вписать "1 мин" вместо "5 мин"?
и что работает? я не пробовал ;-)
← →
Inovet © (2013-11-10 18:51) [37]> [36] Sergey Masloff (10.11.13 18:41)
Менять даёт, а дальше я тоже не стал пробовать. Наверняка это хранится где-нибудь в реестре в секундах или в милисекундах.
← →
ТимоховДА (2013-11-11 00:20) [38]для порядку я бы написал не
LogReport("Step 1");
а
LogReport("Step 2");
во втором случае применения LogReport.
:)
← →
Sergey Masloff (2013-11-11 08:10) [39]ТимоховДА (11.11.13 00:20) [38]
:-)
ты внимательный... это я когда писал сюда на автомате поставил... там текст несколько другой ;-)
← →
Юрий Зотов © (2013-11-11 09:13) [40]> Sergey Masloff (10.11.13 18:27) [34]
В ProcessInfo есть хэндлы порожденного процесса и его главного потока. Их оба надо освободить.
← →
Inovet © (2013-11-11 09:48) [41]> [40] Юрий Зотов © (11.11.13 09:13)
Так то надо, но Виндоус не освободит после завершения вызывающего процесса?
← →
Пит (2013-11-11 20:54) [42]
> удя по тому, что все меньше и меньше требуются вакансии
> на hh.ru, job.ru
естественно, дельфи умер. Вопрос в том, что такой мега популярный язык не мог оставить следов. Сколько эти следы еще будут работать - непонятно)
В принципе, есть куча больших сложных систем на дельфи, переписывать их на "трендовые" языки зачастую нет ресурсов. Из дельфи очень многие свалили, поэтому бывают хорошие вакансии про дельфи сейчас, поддержка этих самых когда-то написанных систем. Но постепенно они умирают, год за годом.
Чтобы кто-то начал большой промышленный проект - я такого не знаю, это исчезающе мало, только лишь тогда, когда вся команда знает Дельфи лучше всего.
Впрочем, я знаю чем сейчас будут оппонировать - а что такое большой, а что такое промышленный)) На это уже лень отвечать. Факт остается фактом, смотри вакансии) Можешь с пеной у рта доказывать, что дельфи жив, но задумайся о своем будущем через 10 лет)
← →
Rouse_ © (2013-11-11 20:58) [43]
> Пит (11.11.13 20:54) [42]
У тебя с .NET таки получилось в итоге? :)
← →
Kerk © (2013-11-11 21:13) [44]Про "большие промышленные проекты" даже читать скучно. Вкусовщина, конечно, но лет 5 "большие промышленные проекты" не трогаю даже палкой и с тех пор я счастлив. В этом плане на удивление интересных проектов на Delphi все еще больше, чем на дотнете. Вот уж там-то рай для желающих написать триллион первую "большую промышленную" учетную систему. Если с Delphi уходить, то скорее на Java или может быть что-нибудь хипстерское вроде Ruby и Python. А "большие промышленные проекты" - это даже звучит ругательно.
← →
Пит (2013-11-11 21:28) [45]
> У тебя с .NET таки получилось в итоге? :)
я было дело на нем пару месяцев пописал, но это так... А что должно было получиться? Мож ты че путаешь..
> Про "большие промышленные проекты" даже читать скучно.
ну.. На бытовом уровне в переводе "Писать на дельфи + какая-то БД и получать хорошие деньги"
> В этом плане на удивление интересных проектов на Delphi
> все еще больше
пример интересных проектов?
> Если с Delphi уходить, то скорее на Java
согласен, сам хочу на java, но изучать её вот так по вечерам на энтузиазме - боюсь, уже не справлюсь. А перейти в нормальный коммерческий проект не получается(
← →
Rouse_ © (2013-11-11 21:30) [46]
> Пит (11.11.13 21:28) [45]
>
> > У тебя с .NET таки получилось в итоге? :)
>
> я было дело на нем пару месяцев пописал, но это так... А
> что должно было получиться? Мож ты че путаешь..
Ну я просто слышал что ты какое-то время на шарпе чето там ваял, а потом свалил обратно.
Вот и спрашиваю. Сам-то на чем сейчас пишешь, что так Дельфю-то хаешь?
← →
Rouse_ © (2013-11-11 21:35) [47]
> пример интересных проектов?
Два эталонных и повсеместно используемых во всем мире отладчика IDA Pro и Olly Debug написаны с использованием VCL. Один из мощных антивирусных комплексов AVZ так-же из этой-же серии.
Проекты интересные они разные бывают ;)
← →
Rouse_ © (2013-11-11 21:38) [48]ЗЫ: скайп, конечно, тоже не из серии интересных проектов :))
← →
Sergey Masloff (2013-11-11 21:43) [49]Пит (11.11.13 21:28) [45]
>> В этом плане на удивление интересных проектов на Delphi
>> все еще больше
>пример интересных проектов?
Ну Kerk © пишет эпизодически чем сейчас занимается. ИМХО так вполне интересно...
Мне кажется, и Розыч не очень скучный софт ваяет...
← →
Rouse_ © (2013-11-11 21:44) [50]
> Мне кажется, и Розыч не очень скучный софт ваяет...
Ну по работе не считается :)
Не скучный для меня лично (на текущий момент) это воть такое: https://github.com/AlexanderBagel/ProcessMemoryMap
← →
Sergey Masloff (2013-11-11 21:45) [51]Ну просто я примеры ближе к телу привел ;-)
Скайп он где а Керк вон от тута ;-)
← →
Пит (2013-11-11 21:56) [52]Слушайте, ну что вы набросились. Я сам ничего лучше дельфи не знаю.
Я не говорю, что проектов нету, они есть, но почти все - старой гвардии, когда нет (не имеет смысла) ресурсов на переписывание.
Количество вакансий уменьшается, это факт. Был даже некий всплеск, сейчас на дельфи можно найти высокооплачиваемую работу, это тоже факт. Связано, думаю, с тем, что очень много народу свалило в другие области, а поддерживать уже существующие крупные системы нужно.
Но перспектива, имхо, она очевидна - всё больше и больше валят, просто процесс идет, а когда закончится - непонятно. Если вы через 5 лет собираетесь на пенсию - даже не имеет смысла рыпаться, имхо. Если в какое-то будущее IT технологий смотрите, то дельфи считай мертв.
Чем дельфи был красавцем? Своей RAD"остью, а сейчас на JS есть такие фреймворки, где повторение одной строчки JS-кода на дельфи занимает экран кода. Это все спорно, я знаю, но тем не менее тенденции видны.
Дельфи в свое время стал отличным показателем удобства (отчего в свое же время столько ламеров и привалило на дельфи, создав определенный ореол отношения к дельфи программистам), сейчас с него все хорошее уже скопировали и в настоящее время дельфи максимум что с опозданием на 5 лет пытается внедрить фичи, которые уже где-то есть. Абракадабра затеяла движуху, это да, но мне кажется поезд уже ушел.
← →
Rouse_ © (2013-11-11 22:04) [53]
> Пит (11.11.13 21:56) [52]
> Слушайте, ну что вы набросились. Я сам ничего лучше дельфи
> не знаю.
> Я не говорю, что проектов нету, они есть, но почти все -
> старой гвардии, когда нет (не имеет смысла) ресурсов на
> переписывание.
Так это-ж и хорошо, пока молодняк осваивает шарпы, мы меняем ланшафт, причем в ручную ©
← →
Пит (2013-11-11 22:39) [54]ну пока ты рад данному факту.. я то чё, я рад за тебя)
← →
Kerk © (2013-11-11 22:42) [55]К нам однажды приезжал по своим делам один высокопоставленный технический дядька. В частности читал доклад про то как "космические корабли бороздят просторы большого театра". Одной из больших задач стоящих перед индустрией он назвал избавление от огромного количества legacy-кода. Для этого нужно много денег, соответствующие технологии и т.д. и т.п.
Но есть один нюанс. Что мы с вами в этой ветке (да часто, чего скрывать) называем legacy-кодом? Вот то, о чем Пит пишет - большие старые проекты на Delphi. Но дядька-то что имел ввиду? Cobol и Fortran!
Так что я думаю, хотя Delphi сейчас объективно и не процветает совсем, в обозримом будущем ей врядли что угрожает.
← →
Пит (2013-11-11 22:52) [56]так в том и дело, дельфи будет жить столько, сколько живут фирмы, которые "не могут" избавиться от этого старого зоопарка. То есть, тут по сути и не в дельфи дело.
Будет все хорошо в стране - все будет. Станет хреново - очень быстро позагибаются и наследие уничтожится большими темпами. И что абракадабра повернет все так, что к моменту возрождения будет иметь смысл начинать все заново на дельфи - совсем не факт.
← →
Пит (2013-11-11 22:55) [57]Насчет Cobol, Fortran и иже с ними, я слышал что тут речь идет об очень базовых вещах. Типа системного уровня банковское ПО, которое когда-то написали и крайне страшно лезть заново туда, поверх этого уже давно java с php, но внутри всё старое.
Ядерные электростанции, автоматика которого тоже на каком-то языке 70-х написана и иже с ними.
Ну в конце концов C в недрах винды.
Но на дельфи такого системного уровня как-то не писали. Есть именно прикладные системы, которые просто используются в настоящее время.
← →
Rouse_ © (2013-11-11 23:01) [58]
> Пит (11.11.13 22:52) [56]
> так в том и дело, дельфи будет жить столько, сколько живут
> фирмы, которые "не могут" избавиться от этого старого зоопарка.
> То есть, тут по сути и не в дельфи дело.
Пока есть люди, которые обеспечивают мне мое личное благосостояние из-за моего знания Delphi, мне пофиг - мертв язык или нет. Все остальное бла-бла.
Сдохнет дельфя в конец - уйду в вирусные аналитики, делов-то...
← →
Eraser © (2013-11-11 23:31) [59]
> Пит (11.11.13 22:55) [57]
на чем будешь писать прикладную программу, чтобы она нормально работала не только на windows 7/8, но и на windows XP? а если еще выдвинуть такое требование, чтобы проект весил не более 10-20 мегабайт, то вообще круг инструментов резко снижается. а если в проекте нужны какие-либо серьезные замысловатые интерфейсные решения, типа сложного грида, нормального listview, современного туллбара.
в целом, мне кажется FMX будет прорывом, еще бы они не экономили на тестировании и разработки, выгнали тех, кто реализовывает этот стартап сейчас и набрали бы уже "взрослых ребят", проект уже созрел для этого.
← →
Kerk © (2013-11-11 23:50) [60]По устойчивым слухам Delphi ждут резкие перемены. Многих они удивят. VCL никуда не денется, но куда ее развивать не понятно, FM - флагман на обозримое будущее. Но, справедливости ради, насколько я знаю, команде и правда ресурсов не хватает, все делается малыми силами в постоянном аврале.
← →
Юрий Зотов © (2013-11-12 00:38) [61]> Inovet © (11.11.13 09:48) [41]
После завершения вызывающего процесса - освободит. Но ведь вызывающий процесс - это, насколько я понял, служба и завершается она вместе с системой.
← →
aaa (2013-11-12 00:49) [62]Непонятно. Чего вы заладили жив/мертв. Если еще есть серьезные альтернативы объектному способу программирования, пример в студию...
← →
Inovet © (2013-11-12 01:00) [63]> [62] aaa (12.11.13 00:49)
> объектному способу программирования
Что-то новенькое. Это значит - кидать батоны?
← →
Inovet © (2013-11-12 01:04) [64]> [61] Юрий Зотов © (12.11.13 00:38)
> это, насколько я понял, служба и завершается она вместе с системой.
Точно, я уже на шедулер переключился.
← →
Eraser © (2013-11-12 01:37) [65]
> Kerk © (11.11.13 23:50) [60]
> VCL никуда не денется, но куда ее развивать не понятно,
> FM - флагман на обозримое будущее.
очень хотелось бы верить! сейчас как раз вплотную занят разработкой версии на FMX - под iOS и Android одновременно. уже излазил там все вдоль и поперек, местами в FMX сделан очень криво, но подчеркну, местами. видно что торопились скорее выпустить. в целом, концепция выбрана удачно, на мой вкус, только фрагментирование пока не достаточное, не все можно поправить и заменить на свое.
что касается VCL, у меня, по большому счету, никаких претензий давно нет в плане функционала и возможностей языка, можно повременить с новыми фишками, просто по закрывать старые баги, которых много.
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2014.05.11;
Скачать: [xml.tar.bz2];
Память: 0.64 MB
Время: 0.003 c