SASGIS - SAS.Планета
View Issue Details
0001502SAS.Планета[All Projects] Багpublic14-08-2012 15:1314-12-2019 12:19
valebog 
 
normalminorrandom
confirmedopen 
Windows 7 максимальнаяSP1 x64
120808 
40xxxx 
0001502: Программа зависает при выходе если включен GPS
При выходе из программы она иногда виснет, если подключен GPS приемник (Gobi 1000).
No tags attached.
related to 0003596feedback zed GPS connexion not possible with u-blox device combining NMEA and proprietary UBX binary protocol 
txt DB лог при зависании 1502 без отключения GPS.txt (19,439) 14-08-2012 17:37
http://www.sasgis.org/mantis/file_download.php?file_id=942&type=bug
png SAS работа прекращена 05.PNG (23,670) 14-08-2012 17:41
http://www.sasgis.org/mantis/file_download.php?file_id=943&type=bug
png

txt DB лог при зависании 1502 без отключения GPS 01.txt (110,793) 14-08-2012 17:45
http://www.sasgis.org/mantis/file_download.php?file_id=944&type=bug
txt DB без зависания 1502_second без отключения GPS.txt (189,298) 14-08-2012 18:33
http://www.sasgis.org/mantis/file_download.php?file_id=947&type=bug
txt DB лог при зависании 1502_eureka без отключения GPS.txt (318,266) 14-08-2012 18:42
http://www.sasgis.org/mantis/file_download.php?file_id=949&type=bug
txt DB лог при зависании 1502_second без отключения GPS.txt (318,266) 14-08-2012 18:49
http://www.sasgis.org/mantis/file_download.php?file_id=950&type=bug
? SASPlanet.elf (43,380) 14-08-2012 18:55
http://www.sasgis.org/mantis/file_download.php?file_id=951&type=bug
png EUREKA.PNG (12,737) 14-08-2012 18:57
http://www.sasgis.org/mantis/file_download.php?file_id=952&type=bug
png

png SAS 1502.PNG (7,995) 14-08-2012 20:09
http://www.sasgis.org/mantis/file_download.php?file_id=955&type=bug
png

png SAS EUREKA.PNG (10,388) 14-08-2012 20:14
http://www.sasgis.org/mantis/file_download.php?file_id=956&type=bug
png

? SASPlanet.elf new (92,718) 14-08-2012 20:23
http://www.sasgis.org/mantis/file_download.php?file_id=957&type=bug
txt DB лог при зависании 1502_new без отключения GPS.txt (51,819) 14-08-2012 20:28
http://www.sasgis.org/mantis/file_download.php?file_id=958&type=bug
? SASPlanet01.elf (39,848) 15-08-2012 05:46
http://www.sasgis.org/mantis/file_download.php?file_id=962&type=bug
txt DB лог при зависании 1502_NIGHT без отключения GPS.txt (134,488) 15-08-2012 05:48
http://www.sasgis.org/mantis/file_download.php?file_id=963&type=bug
txt DB лог при зависании 1502_NOLOCK без отключения GPS.txt (60,015) 15-08-2012 15:29
http://www.sasgis.org/mantis/file_download.php?file_id=967&type=bug
? SASPlanet02.elf (42,545) 15-08-2012 15:30
http://www.sasgis.org/mantis/file_download.php?file_id=968&type=bug
rar SASPlanet_bug1502_EUREKA.rar (2,117,893) 15-08-2012 18:43
http://www.sasgis.org/mantis/file_download.php?file_id=969&type=bug
rar SASPlanet_bug1502_NOW.rar (1,675,145) 15-08-2012 18:43
http://www.sasgis.org/mantis/file_download.php?file_id=970&type=bug
txt DB лог при зависании 1502_NOW без отключения GPS.txt (61,097) 15-08-2012 19:36
http://www.sasgis.org/mantis/file_download.php?file_id=971&type=bug
? SASPlanet03.elf (46,478) 15-08-2012 19:36
http://www.sasgis.org/mantis/file_download.php?file_id=972&type=bug
txt DB лог при зависании 1502_NOW без отключения GPS 01.txt (36,480) 15-08-2012 20:16
http://www.sasgis.org/mantis/file_download.php?file_id=973&type=bug
Issue History
14-08-2012 15:13valebogNew Issue
14-08-2012 15:13valebogFile Added: DB лог при зависании без отключения GPS.txt
14-08-2012 15:56vasketsovAssigned To => vasketsov
14-08-2012 15:56vasketsovStatusnew => assigned
14-08-2012 16:43vasketsovFile Added: SASPlanet_bug1502_debug.rar
14-08-2012 16:44vasketsovNote Added: 0008501
14-08-2012 17:37valebogFile Added: DB лог при зависании 1502 без отключения GPS.txt
14-08-2012 17:39valebogNote Added: 0008503
14-08-2012 17:41valebogFile Added: SAS работа прекращена 05.PNG
14-08-2012 17:45valebogFile Added: DB лог при зависании 1502 без отключения GPS 01.txt
14-08-2012 17:46valebogNote Edited: 0008503bug_revision_view_page.php?bugnote_id=8503#r4132
14-08-2012 17:47vasketsovNote Added: 0008504
14-08-2012 17:47valebogNote Edited: 0008503bug_revision_view_page.php?bugnote_id=8503#r4133
14-08-2012 17:50valebogNote Added: 0008505
14-08-2012 17:50valebogNote Deleted: 0008505
14-08-2012 17:51valebogNote Added: 0008506
14-08-2012 18:07vasketsovFile Deleted: SASPlanet_bug1502_debug.rar
14-08-2012 18:07vasketsovFile Deleted: DB лог при зависании без отключения GPS.txt
14-08-2012 18:10vasketsovNote Added: 0008507
14-08-2012 18:10vasketsovFile Added: SASPlanet_bug1502_SECOND.rar
14-08-2012 18:16vasketsovFile Added: SASPlanet_bug1502_EUREKA.rar
14-08-2012 18:33valebogNote Added: 0008508
14-08-2012 18:33valebogFile Added: DB без зависания 1502_second без отключения GPS.txt
14-08-2012 18:34valebogNote Edited: 0008508bug_revision_view_page.php?bugnote_id=8508#r4135
14-08-2012 18:34valebogNote Edited: 0008508bug_revision_view_page.php?bugnote_id=8508#r4136
14-08-2012 18:37vasketsovNote Added: 0008509
14-08-2012 18:37vasketsovNote Edited: 0008509bug_revision_view_page.php?bugnote_id=8509#r4138
14-08-2012 18:40valebogNote Added: 0008510
14-08-2012 18:40vasketsovFile Deleted: SASPlanet_bug1502_EUREKA.rar
14-08-2012 18:41vasketsovFile Added: SASPlanet_bug1502_EUREKA.rar
14-08-2012 18:42valebogFile Added: DB лог при зависании 1502_eureka без отключения GPS.txt
14-08-2012 18:46valebogNote Edited: 0008510bug_revision_view_page.php?bugnote_id=8510#r4140
14-08-2012 18:48vasketsovNote Added: 0008511
14-08-2012 18:48valebogNote Edited: 0008510bug_revision_view_page.php?bugnote_id=8510#r4141
14-08-2012 18:49valebogFile Added: DB лог при зависании 1502_second без отключения GPS.txt
14-08-2012 18:55valebogFile Added: SASPlanet.elf
14-08-2012 18:57valebogFile Added: EUREKA.PNG
14-08-2012 19:23zedNote Added: 0008512
14-08-2012 19:59vasketsovFile Deleted: SASPlanet_bug1502_SECOND.rar
14-08-2012 19:59vasketsovFile Deleted: SASPlanet_bug1502_EUREKA.rar
14-08-2012 20:00vasketsovFile Added: SASPlanet_bug1502_EUREKA.rar
14-08-2012 20:01vasketsovFile Added: SASPlanet_bug1502_NEW.rar
14-08-2012 20:02vasketsovNote Added: 0008513
14-08-2012 20:08valebogNote Added: 0008514
14-08-2012 20:09valebogFile Added: SAS 1502.PNG
14-08-2012 20:14valebogFile Added: SAS EUREKA.PNG
14-08-2012 20:16vasketsovNote Added: 0008515
14-08-2012 20:19valebogNote Edited: 0008514bug_revision_view_page.php?bugnote_id=8514#r4143
14-08-2012 20:21valebogNote Added: 0008516
14-08-2012 20:23valebogFile Added: SASPlanet.elf new
14-08-2012 20:28valebogFile Added: DB лог при зависании 1502_new без отключения GPS.txt
14-08-2012 20:30valebogNote Edited: 0008516bug_revision_view_page.php?bugnote_id=8516#r4145
14-08-2012 20:39valebogNote Added: 0008517
14-08-2012 20:43valebogNote Edited: 0008517bug_revision_view_page.php?bugnote_id=8517#r4147
14-08-2012 21:01vasketsovFile Deleted: SASPlanet_bug1502_EUREKA.rar
14-08-2012 21:01vasketsovFile Deleted: SASPlanet_bug1502_NEW.rar
14-08-2012 21:02vasketsovFile Added: SASPlanet_bug1502_EUREKA.rar
14-08-2012 21:02vasketsovFile Added: SASPlanet_bug1502_NIGHT.rar
14-08-2012 21:05vasketsovNote Added: 0008518
15-08-2012 04:10TolikSummaryПри отключении программа виснет. => Программа зависает при выходе
15-08-2012 04:10TolikDescription Updatedbug_revision_view_page.php?rev_id=4149#r4149
15-08-2012 05:46valebogFile Added: SASPlanet01.elf
15-08-2012 05:48valebogFile Added: DB лог при зависании 1502_NIGHT без отключения GPS.txt
15-08-2012 06:08valebogNote Added: 0008521
15-08-2012 10:29vasketsovFile Deleted: SASPlanet_bug1502_EUREKA.rar
15-08-2012 10:29vasketsovFile Deleted: SASPlanet_bug1502_NIGHT.rar
15-08-2012 10:30vasketsovFile Added: SASPlanet_bug1502_NOLOCK.rar
15-08-2012 10:30vasketsovFile Added: SASPlanet_bug1502_EUREKA.rar
15-08-2012 10:32vasketsovNote Added: 0008522
15-08-2012 13:58vdemidovNote Added: 0008524
15-08-2012 14:13vasketsovNote Added: 0008525
15-08-2012 14:14vdemidovNote Added: 0008526
15-08-2012 14:19vasketsovNote Added: 0008528
15-08-2012 14:21vasketsovNote Added: 0008529
15-08-2012 14:34vdemidovNote Added: 0008530
15-08-2012 14:42vasketsovNote Added: 0008531
15-08-2012 15:05vdemidovNote Added: 0008532
15-08-2012 15:29valebogFile Added: DB лог при зависании 1502_NOLOCK без отключения GPS.txt
15-08-2012 15:30valebogFile Added: SASPlanet02.elf
15-08-2012 15:31valebogNote Added: 0008533
15-08-2012 15:36vasketsovNote Added: 0008534
15-08-2012 15:43vdemidovNote Added: 0008535
15-08-2012 15:54vasketsovNote Added: 0008536
15-08-2012 15:57vasketsovNote Edited: 0008536bug_revision_view_page.php?bugnote_id=8536#r4153
15-08-2012 16:08TolikNote Added: 0008540
15-08-2012 18:41vasketsovFile Deleted: SASPlanet_bug1502_NOLOCK.rar
15-08-2012 18:41vasketsovFile Deleted: SASPlanet_bug1502_EUREKA.rar
15-08-2012 18:43vasketsovFile Added: SASPlanet_bug1502_EUREKA.rar
15-08-2012 18:43vasketsovFile Added: SASPlanet_bug1502_NOW.rar
15-08-2012 18:44vasketsovNote Added: 0008547
15-08-2012 19:36valebogFile Added: DB лог при зависании 1502_NOW без отключения GPS.txt
15-08-2012 19:36valebogFile Added: SASPlanet03.elf
15-08-2012 19:37valebogNote Added: 0008548
15-08-2012 19:53vasketsovNote Added: 0008549
15-08-2012 20:08valebogNote Added: 0008550
15-08-2012 20:16valebogNote Added: 0008551
15-08-2012 20:16valebogFile Added: DB лог при зависании 1502_NOW без отключения GPS 01.txt
16-08-2012 14:36vasketsovNote Added: 0008556
16-08-2012 15:00valebogNote Added: 0008557
16-08-2012 15:19vasketsovNote Added: 0008558
16-08-2012 16:33valebogNote Added: 0008559
29-08-2012 06:54vdemidovSummaryПрограмма зависает при выходе => Программа зависает при выходе если включен GPS
29-08-2012 06:54vdemidovTarget Version => 24xxxx
04-11-2014 12:04vdemidovAssigned Tovasketsov =>
04-11-2014 12:04vdemidovTarget Version24xxxx => 40xxxx
04-11-2014 12:06vdemidovStatusassigned => confirmed
14-12-2019 12:19zedRelationship addedrelated to 0003596

Notes
(0008501)
vasketsov   
14-08-2012 16:44   
Загрузил SASPlanet_bug1502_debug.rar
Попробуйте её (по прежнему напрямую с dbmon).
Если зависнет - надо подождать минуту.
Если будут сообщения или файлы elf создаваться - их тоже сюда.
(0008503)
valebog   
14-08-2012 17:39   
(edited on: 14-08-2012 17:47)
Где искать файлы elf и сообщения?

Добавил от повторного зависания скришот и лог. Не нужное удалите.

(0008504)
vasketsov   
14-08-2012 17:47   
Ну сообщения - если бы вылезли.
Файлы elf - если создадутся, то в папке с программой.
(0008506)
valebog   
14-08-2012 17:51   
Сообщение только о прекращении работы, а файлов elf нет.
(0008507)
vasketsov   
14-08-2012 18:10   
Значит я чё-то не так делаю, должны появляться при зависании.
Возьмите завтра свежую ночную версию, и запустите оттуда отладочную версию саса (она имеет в имени файла debug, не забудьте положить ini-шку туда с readonly=1).
Это если сегодня не разберёмся.

Вот новую версию приаттачил SASPlanet_bug1502_SECOND, пробуйте, традиционно потом лог dbmon в студию.
(0008508)
valebog   
14-08-2012 18:33   
(edited on: 14-08-2012 18:34)
Перестала зависать. Лог без зависания отправляю.

EUREKA - пробовать?

(0008509)
vasketsov   
14-08-2012 18:37   
EUREKA имеет смысл пробовать при воспроизведении зависания.
Плохо что перестало зависать, надо чтобы зависало!!!!
зы. но DB без зависания 1502_second без отключения GPS.txt попрошу оставить и не удалять.

(0008510)
valebog   
14-08-2012 18:40   
(edited on: 14-08-2012 18:48)
Вот зависла наверно с шестого раза. Отправляю лог. Но это не EUREKA, а second, ошибся в названии. Еще раз отправляю, исправив название, а EUREKA удалите.

(0008511)
vasketsov   
14-08-2012 18:48   
Заменил EUREKA, её надо запускать без dbmon, попробуйте чтобы в ней зависло, и подождите минуту, должен появиться файл elf, если появится - файл в студию.
(0008512)
zed   
14-08-2012 19:23   
Видимо это таки 0001336 не вылечился.
(0008513)
vasketsov   
14-08-2012 20:02   
Залил новые версии SASPlanet_bug1502_EUREKA.rar и SASPlanet_bug1502_NEW.rar.
Пробуйте.
(0008514)
valebog   
14-08-2012 20:08   
(edited on: 14-08-2012 20:19)
SASPlanet_bug1502_NEW.rar. повисла капитально. И EUREKA тоже, даже файла elf не записала.

(0008515)
vasketsov   
14-08-2012 20:16   
А лог dbmon от NEW и elf от EUREKA будет?
(0008516)
valebog   
14-08-2012 20:21   
(edited on: 14-08-2012 20:30)
Записался elf, отправляю и буду делать лог с dbmon.

(0008517)
valebog   
14-08-2012 20:39   
(edited on: 14-08-2012 20:43)
NEW первый раз с dbmon зависла, лог выслал, а сейчас три раза запускал без него и закрывалась без проблем. Однако нестабильность какая то.

(0008518)
vasketsov   
14-08-2012 21:05   
Собрал новые версии SASPlanet_bug1502_EUREKA.rar и SASPlanet_bug1502_NIGHT.rar.
Пробуйте.
зы. Видимо это последнее, на сегодня игр уже хватит.
(0008521)
valebog   
15-08-2012 06:08   
Лог и elf отправил.
(0008522)
vasketsov   
15-08-2012 10:32   
Собрал по новой SASPlanet_bug1502_NOLOCK.rar и SASPlanet_bug1502_EUREKA.rar.
На этот раз вообще убрал блокировку, жду лог и файл elf даже если и не зависнет и даже если не будет ошибок (если зависнет или будут ошибки - тем более жду)))).
(0008524)
vdemidov   
15-08-2012 13:58   
vasketsov Посмотрел внимательнее на работу с тредом у тебя. Это тихий ужас. Там пространства авешек уйма.
Надеюсь ты понимаешь, что вот эта функция
  function _CheckTerminated: Boolean;
  begin
    Result := ((nil=FPacketThread) or (FPacketThread.Terminated));
  end;
Ни разу не тредсейфовая. Да и вообще не нужна. Достаточно было передать в функцию InternalThreadRoutine_for_Packets параметром TThread. Или не стоит пытаться удалить тред снаружи самого треда.
Как сейчас выходит зависание.
Онсовной тред начинает удалять все. Заходит в критическую секцию и вызывает удаление FPacketThread.
В деструкторе треда есть ожидание завершение самого треда. Поэтому основной поток замораживается.
Поток треда получате команду на завершение и пытается завершиться.
Но у него есть OnTerminate в котором есть захват критической секции уже захваченной основным тредом.
Все. Дедлок классический.
(0008525)
vasketsov   
15-08-2012 14:13   
>Там пространства авешек уйма
Но в месте с тем их там нет. Там проблема в другом.

> Надеюсь ты понимаешь, что вот эта функция ни разу не тредсейфовая
Да.

>Достаточно было передать в функцию InternalThreadRoutine_for_Packets параметром TThread
Не достаточно.

>у него есть OnTerminate в котором есть захват критической секции уже захваченной основным тредом
Если ты помнишь, он появился после твоих советов. И в приаттаченной сюда версии его уже нет.
(0008526)
vdemidov   
15-08-2012 14:14   
Ну я тоже могу ошибаться. На самом деле нужно было убирать все убиение треда из деструктора.
(0008528)
vasketsov   
15-08-2012 14:19   
>Дедлок классический
Последняя запись в логе dbmon - это
3276: [THR=872]TVSAGPS_UNITS.Lock_CS_Runtime: in
3276: [THR=872]TVSAGPS_UNITS.Lock_CS_Runtime: ok
3276: [THR=872]TVSAGPS_UNITS.Lock_CS_Runtime: in
3276: [THR=872]TVSAGPS_UNITS.Lock_CS_Runtime: ok
3276: [THR=872]TVSAGPS_UNITS.Unlock_CS_Runtime: in
3276: [THR=872]TVSAGPS_UNITS.Unlock_CS_Runtime: ok
3276: [THR=872]TVSAGPS_UNITS.Unlock_CS_Runtime: in
Попробуй для начала объяснить, почему на LeaveCriticalSection виснет поток, при том что на не убита. Если так типа всё просто.
зы. И вообще предлагаю заняться своими делами.
(0008529)
vasketsov   
15-08-2012 14:21   
>На самом деле нужно было убирать все убиение треда из деструктора
А кто и откуда его должен убить, если поток завис?
(0008530)
vdemidov   
15-08-2012 14:34   
Если тред завис, то при помощи деструктора, ты его не убьешь, ибо в деструкторе есть вызов WaitFor и зависнет вся программа. И вообще убивать треды насильно это очень плохая идея.
(0008531)
vasketsov   
15-08-2012 14:42   
>ибо в деструкторе есть вызов WaitFor
подсказко: if (FThreadID <> 0) and not FFinished then
(0008532)
vdemidov   
15-08-2012 15:05   
И с какой же радости это условие невыполниться, если FThreadID нигде не обнуляется а FFinished устанавливается уже после окончания треда и выполнения OnTerminate
(0008533)
valebog   
15-08-2012 15:31   
Отправил лог и elf.
(0008534)
vasketsov   
15-08-2012 15:36   
>если FThreadID нигде не обнуляется а FFinished устанавливается
А если обнулится и установится? С этим проблема?
Ещё одна подсказка:
CloseHandle(Handle);
PHandle(@(Handle))^:=0;
PDWORD(@(ThreadID))^:=0;
(0008535)
vdemidov   
15-08-2012 15:43   
Если речь о KillNow то его вызова для FPacketThread я что-то не вижу.
(0008536)
vasketsov   
15-08-2012 15:54   
(edited on: 15-08-2012 15:57)
Ну может в этом и есть беда.
Потому что в деструкторе Tvsagps_object.Destroy уже объективно поток должен быть мёртвый (и соответственно поле должно быть NIL).
Ща поиграемся.
зы. Но там другая беда: из двух потоков залетает в Tvsagps_Packet_Thread.Destroy.

(0008540)
Tolik   
15-08-2012 16:08   
Так прикольно всё это читать! Все слова вроде понятные, а в целом - ни хрена не понятно :)))) Моск просто отдыхает :)

(сорри)
(0008547)
vasketsov   
15-08-2012 18:44   
Собрал новые версии SASPlanet_bug1502_EUREKA.rar и SASPlanet_bug1502_NOW.rar.
Пробуйте.
(0008548)
valebog   
15-08-2012 19:37   
Лог и elf отправил.
(0008549)
vasketsov   
15-08-2012 19:53   
А зависало? А то я что-то не вижу зависания в логе.
(0008550)
valebog   
15-08-2012 20:08   
Зависало.
(0008551)
valebog   
15-08-2012 20:16   
Отправляю еше один лог с зависанием.
(0008556)
vasketsov   
16-08-2012 14:36   
Сейчас залью в репо наименее склонный к зависанию вариант, в сентябре продолжим.
(0008557)
valebog   
16-08-2012 15:00   
Что такое репо?
(0008558)
vasketsov   
16-08-2012 15:19   
Это то, откуда собираются официальные "ночные" версии.
С завтрешней "ночнушки" будет некая промежуточная квазистабильная версия.
Если есть желание - можете попробовать её. Но я уже буду до сентября недоступен.
(0008559)
valebog   
16-08-2012 16:33   
Понял, попробую, СПАСИБО.