Are you able to compile QMS on your own? See

https://bitbucket.org/maproom/qmapshack/wiki/BuildWindowsVisualStudio

for instructions.


My guess is that slotSaveWorkspace() the item mutex is in a dead lock.
To find out we need to place a debug message:


void CGisListWks::slotSaveWorkspace()
{
    qDebug() << "slotSaveWorkspace() before lock"; // add debug message
    CGisListWksEditLock lock(true,IGisItem::mutexItems);
    qDebug() << "slotSaveWorkspace() after lock"; // add debug message

    if(!saveOnExit)
    {
        return;
    }

    QSqlQuery query(db);
    QUERY_RUN("DELETE FROM workspace", return )

    qDebug() << "slotSaveWorkspace()";



If my guess is right we will see the "before lock" message only.

HTH

Oliver



Am 06.04.2016 um 14:02 schrieb z...@cms123.fr:
>
> Hello,
>
>  
>
> For this test I use 1 Garmin map (from Openmtbmap) and 1 test database
> (see attachment).
>
> The sequence is :
>
> - open QMS
>
> - load "testfolder" from database
>
> - zoom / pan
>
> - close QMS by clicking on "X"
>
> - check in task manager if it is still alive ; kill it if necessary
>
> - open QMS
>
> - close "testfolder"
>
> - zoom / pan
>
> - close QMS
>
> - check in task manager if it is still alive ; kill it if necessary
>
> - start again
>
>  
>
> See full logfile in attachment. Problem occurence rate in attached
> logfile is much less than when I use QMS in a "normal" way, means
> loading objects from database, modifying tracks, zooming/panning and
> so on.
>
> Sometimes it works dozens of times, but in general when it does not
> work it happens several times in a row.
>
> I completely remove the Box-synced folder.
>
> When QMS stays alive in background, it is "forever" : after 1 hour it
> is still there.
>
> In fact now each time I close QMS, I open Windows tasks manager, check
> if qmapshack.exe is there and kill it if necessary.
>
>  
>
> Here is what happens when QMS is closed and reopened without problem :
>
> 2016-04-06 13:20:54.256 [debug] bufferScale QPointF(0.7,-0.7)
> 2016-04-06 13:20:54.258 [debug] stop thread "gis" after 4 ms
> 2016-04-06 13:20:54.277 [debug] start thread "dem"
> 2016-04-06 13:20:54.277 [debug] bufferScale QPointF(0.7,-0.7)
> 2016-04-06 13:20:54.278 [debug] stop thread "dem" after 1 ms
> 2016-04-06 13:20:54.279 [debug] start thread "gis"
> 2016-04-06 13:20:54.279 [debug] bufferScale QPointF(0.7,-0.7)
> 2016-04-06 13:20:54.281 [debug] bufferScale QPointF(0.7,-0.7)
> 2016-04-06 13:20:54.282 [debug] stop thread "gis" after 3 ms
> 2016-04-06 13:20:54.718 [debug] stop thread "map" after 526 ms
> 2016-04-06 13:20:57.571 [debug] slotSaveWorkspace()
> *2016-04-06 13:20:57.594 [debug] close database "testDB"*
> *2016-04-06 13:20:59.456 [debug] Log configuration: log file=
> "C:/Users/xxx/AppData/Local/Temp/org.qlandkarte.QMapShack.log" write
> to file= true debug output= false*
> 2016-04-06 13:20:59.456 [debug] "GDAL_DATA directory set to
> C:\\Program Files\\QMapShack\\data"
> 2016-04-06 13:20:59.456 [debug] "PROJ_LIB directory set to C:\\Program
> Files\\QMapShack\\share"
> 2016-04-06 13:20:59.457 [debug] locale "fr"
> 2016-04-06 13:20:59.458 [debug] "using file 'C:\\Program
> Files\\QMapShack\\translations/qtbase_fr.qm' for translations."
> 2016-04-06 13:20:59.458 [debug] locale "fr"
> 2016-04-06 13:20:59.458 [debug] "using file 'C:\\Program
> Files\\QMapShack\\translations/qmapshack_fr.qm' for translations."
> 2016-04-06 13:20:59.458 [debug] "CACHE" path "C:/Users/xxx/.QMapShack"
> 2016-04-06 13:20:59.459 [debug] "USER DATA" path
> "C:/Users/xxx/.config/QLandkarte/WaypointIcons"
> 2016-04-06 13:20:59.459 [debug] "LOG" path
> "C:/Users/xxx/AppData/Local/Temp"
> 2016-04-06 13:20:59.486 [debug] Application ID: 7795
> 2016-04-06 13:20:59.491 [debug] "ROUTINO" path "C:/Program
> Files/QMapShack/routino-xml/profiles.xml"
> 2016-04-06 13:20:59.492 [debug] "ROUTINO" path "C:/
>
>  
>
>  
>
> Here when it still runs and I have to kill it :
>
> 2016-04-06 13:21:01.898 [debug] bufferScale QPointF(0.1,-0.1)
> 2016-04-06 13:21:01.899 [debug] stop thread "dem" after 1 ms
> 2016-04-06 13:21:01.900 [debug] start thread "gis"
> 2016-04-06 13:21:01.900 [debug] bufferScale QPointF(0.1,-0.1)
> 2016-04-06 13:21:01.904 [debug] stop thread "gis" after 4 ms
> 2016-04-06 13:21:01.917 [debug] bufferScale QPointF(0.1,-0.1)
> 2016-04-06 13:21:01.976 [debug] stop thread "map" after 156 ms
> 2016-04-06 13:21:04.268 [debug] start thread "gis"
> 2016-04-06 13:21:04.268 [debug] bufferScale QPointF(0.1,-0.1)
> 2016-04-06 13:21:04.272 [debug] stop thread "gis" after 4 ms
> 2016-04-06 13:21:06.559 [debug] start thread "gis"
> 2016-04-06 13:21:06.559 [debug] bufferScale QPointF(0.1,-0.1)
> *2016-04-06 13:21:06.560 [debug] stop thread "gis" after 1 ms*
> *2016-04-06 13:21:18.415 [debug] Log configuration: log file=
> "C:/Users/xxx/AppData/Local/Temp/org.qlandkarte.QMapShack.log" write
> to file= true debug output= false*
> 2016-04-06 13:21:18.416 [debug] "GDAL_DATA directory set to
> C:\\Program Files\\QMapShack\\data"
> 2016-04-06 13:21:18.416 [debug] "PROJ_LIB directory set to C:\\Program
> Files\\QMapShack\\share"
> 2016-04-06 13:21:18.417 [debug] locale "fr"
> 2016-04-06 13:21:18.417 [debug] "using file 'C:\\Program
> Files\\QMapShack\\translations/qtbase_fr.qm' for translations."
> 2016-04-06 13:21:18.417 [debug] locale "fr"
> 2016-04-06 13:21:18.418 [debug] "using file 'C:\\Program
> Files\\QMapShack\\translations/qmapshack_fr.qm' for translations."
> 2016-04-06 13:21:18.418 [debug] "CACHE" path "C:/Users/xxx/.QMapShack"
> 2016-04-06 13:21:18.418 [debug] "USER DATA" path
> "C:/Users/xxx/.config/QLandkarte/WaypointIcons"
> 2016-04-06 13:21:18.419 [debug] "LOG" path
> "C:/Users/xxx/AppData/Local/Temp"
> 2016-04-06 13:21:18.445 [debug] Application ID: 7858
>
>  
>
> Thanks for your support,
>
>  
>
> zero
>
>  
>
>  
>
>  
>
> Le 06.04.2016 08:19, Oliver Eichler a écrit :
>
>> Hi,
>>
>> on shutdown the destructores of all child classes  of the main widget
>> are called. And they call the dtors of their children and so on. Usually
>> this shouldn't be a problem. But maybe the log file gives a hint. Have a
>> look at the -f option on the commandline:
>>
>> https://bitbucket.org/maproom/qmapshack/wiki/DocCmdOptions
>>
>> HTH
>>
>> Oliver
>>
>> Am 05.04.2016 um 22:26 schrieb Helmut Schmidt:
>>> Hi zero,
>>>
>>> I made 5 tests and the QMS always disappeared latest 1sec after the
>>> window disappeared. Of course this is not a useful statistics.
>>>
>>> I do not yet understand from your report whether QMS just takes long
>>> time (say 5 seconds or 30 seconds or 1 minute) until it really
>>> terminates after closing the main window. Or whether it hangs
>>> infinitely.
>>> Do you know whether the hangs would also happen when the .db file is in
>>> an ordinary directory on your hard disk which is not synchronized?
>>> Which
>>> means: could it be some kind of deadlock in between QMS and teh
>>> synchronization service?
>>>
>>> @Oliver: can you tell what kind of cleanup actions happen after the
>>> window disappears? Would it be possible to execute those actions before
>>> closing the window?
>>>
>>> Regards,
>>>
>>> Helmut
>>>
>>> Am 05.04.2016 um 13:12 schrieb z...@cms123.fr: <mailto:z...@cms123.fr:>
>>>> Hello,
>>>>
>>>> As long as I remember, I always noticed that "quite often" (1 every 5
>>>> times maybe) when closing QMS, main window disappears as expected but
>>>> CTRL+ALT+SUPPR-> task manager reveals that "qmapshack.exe" is still
>>>> running in background.
>>>>
>>>> My main issue is that this causes synchronization issues with my .db
>>>> file stored on a Box account.
>>>>
>>>> When I close QMS (but that in fact QMS still runs is background), the
>>>> .db file remains unchanged and Box does not synchronize it. At this
>>>> point I have to go to Windows task manager to kill qmapshack.exe. Then
>>>> Box uploads the .db file to the cloud as expected.
>>>>
>>>> Maybe you have some ideas how to really close QMS, not leaving a
>>>> running
>>>> instance in background.
>>>>
>>>> Thanks for your help,
>>>>
>>>> zero
>>>>
>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Qlandkartegt-users mailing list
>>>> Qlandkartegt-users@lists.sourceforge.net
>>>> <mailto:Qlandkartegt-users@lists.sourceforge.net>
>>>> https://lists.sourceforge.net/lists/listinfo/qlandkartegt-users
>>>>
>>> ------------------------------------------------------------------------------
>>> _______________________________________________
>>> Qlandkartegt-users mailing list
>>> Qlandkartegt-users@lists.sourceforge.net
>>> <mailto:Qlandkartegt-users@lists.sourceforge.net>
>>> https://lists.sourceforge.net/lists/listinfo/qlandkartegt-users
>>
>>
>> ------------------------------------------------------------------------------
>> _______________________________________________
>> Qlandkartegt-users mailing list
>> Qlandkartegt-users@lists.sourceforge.net
>> <mailto:Qlandkartegt-users@lists.sourceforge.net>
>> https://lists.sourceforge.net/lists/listinfo/qlandkartegt-users
>
>  
>
>  
>
>
> ------------------------------------------------------------------------------
>
>
> _______________________________________________
> Qlandkartegt-users mailing list
> Qlandkartegt-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/qlandkartegt-users


------------------------------------------------------------------------------
_______________________________________________
Qlandkartegt-users mailing list
Qlandkartegt-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/qlandkartegt-users

Reply via email to