pull-request: trip management, next try

Dirk Hohndel dirk at hohndel.org
Mon Sep 3 11:27:11 PDT 2012


On Sep 3, 2012, at 10:49 AM, Henrik Brautaset Aronsen wrote:

> At 03.09.12 19:35, Dirk Hohndel wrote:
>> Henrik Brautaset Aronsen <subsurface at henrik.synth.no> writes:
>>> Also, Subsurface crashed when I removed a topmost dive from a group:
>>> 
>>> Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
>>> 0   org.hohndel.subsurface            0x000000010735887e
>>> move_dive_between_trips + 430 (divelist.c:1297)
>>> 1   org.hohndel.subsurface            0x0000000107358fe6
>>> insert_trip_before + 1078 (divelist.c:1378)
>>> 2   org.hohndel.subsurface            0x00000001073591bb
>>> remove_from_trip_cb + 219 (divelist.c:1416)
>>> 3   libgobject-2.0.0.dylib            0x0000000107fa3104
>>> g_closure_invoke + 308
>> So this is fixed as well. Two different issues. For one thing, as I
>> noted, the test dives were just wrong (date but no time in the trip
>> entries).
>> We also had a code path where we would dereference child nodes on a tree
>> node that doesn't have children.
> 
> Sure about that?  I can still reproduce the crash (remove dive 15, sort by date, remove dive 16, crash).
> 
> Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
> 0   libsystem_kernel.dylib            0x00007fff8457a212 __pthread_kill + 10
> 1   libsystem_c.dylib                 0x00007fff872cbb34 pthread_kill + 90
> 2   libsystem_c.dylib                 0x00007fff8730fdfa abort + 143
> 3   libglib-2.0.0.dylib               0x000000010dd1aebf g_assertion_message + 303
> 4   libglib-2.0.0.dylib               0x000000010dd1b335 g_assertion_message_expr + 69
> 5   libgtk-quartz-2.0.0.dylib         0x000000010d4e30c6 gtk_tree_store_remove + 390
> 6   org.hohndel.subsurface            0x000000010d0332d8 remove_from_trip_cb + 520 (divelist.c:1428)
> 7   libgobject-2.0.0.dylib            0x000000010dc7b104 g_closure_invoke + 308
> 8   libgobject-2.0.0.dylib            0x000000010dc8a859 signal_emit_unlocked_R + 1641
> 9   libgobject-2.0.0.dylib            0x000000010dc8b95c g_signal_emit_valist + 2924

So you run ./subsurface dives/test*.xml
Then you remove dive 15 (the bottom dive in the third trip) from its trip
You hit sort by date
You remove dive 16 (which now is the top of the second trip) from its trip

And then you get the crash above?

For me (with the latest version as pushed an hour ago) this does not crash and in fact appears to give a correct and consistent dive list.

Can you give me the exact command line and exact steps to reproduce, please?
Can you make sure you pulled the latest version from the trip3 branch?

/D


More information about the subsurface mailing list