View Issue Details

IDProjectCategoryView StatusLast Update
0002850GNUnetconsensus servicepublic2013-12-24 19:54
ReporterChristian Grothoff Assigned ToChristian Grothoff Due Date
PriorityurgentSeveritycrashReproducibilityunable to reproduce
Status closedResolutionwon't fix 
Product VersionGit master 
Target Version0.10.0Fixed in Version0.10.0 
Summary0002850: consensus service segfaults during dv test
DescriptionMar 30 17:28:20-333973 consensus-13987 ERROR Assertion failed at gnunet-service-consensus.c:1997.
==13987== Invalid read of size 8
==13987== at 0x409571: core_startup (gnunet-service-consensus.c:2658)
==13987== by 0x50AC886: main_notify_handler (core_api.c:785)
==13987== by 0x4E433D3: receive_task (client.c:597)
==13987== by 0x4E7F988: run_ready (scheduler.c:597)
==13987== by 0x4E801D7: GNUNET_SCHEDULER_run (scheduler.c:786)
==13987== by 0x4E8F1F0: GNUNET_SERVICE_run (service.c:1816)
==13987== by 0x409964: main (gnunet-service-consensus.c:2778)
==13987== Address 0x6f87d00 is 0 bytes inside a block of size 240 free'd
==13987== at 0x4C27D4E: free (vg_replace_malloc.c:427)
==13987== by 0x4E45B7E: GNUNET_xfree_ (common_allocation.c:236)
==13987== by 0x405DFA: destroy_session (gnunet-service-consensus.c:1667)
==13987== by 0x405E3B: disconnect_client (gnunet-service-consensus.c:1688)
==13987== by 0x406EBA: initialize_session (gnunet-service-consensus.c:1998)
==13987== by 0x40956C: core_startup (gnunet-service-consensus.c:2657)
==13987== by 0x50AC886: main_notify_handler (core_api.c:785)
==13987== by 0x4E433D3: receive_task (client.c:597)
==13987== by 0x4E7F988: run_ready (scheduler.c:597)
==13987== by 0x4E801D7: GNUNET_SCHEDULER_run (scheduler.c:786)
==13987== by 0x4E8F1F0: GNUNET_SERVICE_run (service.c:1816)
==13987== by 0x409964: main (gnunet-service-consensus.c:2778)
==13987==
==13987== Invalid read of size 8
==13987== at 0x409558: core_startup (gnunet-service-consensus.c:2656)
==13987== by 0x50AC886: main_notify_handler (core_api.c:785)
==13987== by 0x4E433D3: receive_task (client.c:597)
==13987== by 0x4E7F988: run_ready (scheduler.c:597)
==13987== by 0x4E801D7: GNUNET_SCHEDULER_run (scheduler.c:786)
==13987== by 0x4E8F1F0: GNUNET_SERVICE_run (service.c:1816)
==13987== by 0x409964: main (gnunet-service-consensus.c:2778)
==13987== Address 0xdf0adba0df0adca is not stack'd, malloc'd or (recently) free'd
==13987==
==13987==
==13987== Process terminating with default action of signal 11 (SIGSEGV): dumping core
==13987== General Protection Fault
==13987== at 0x409558: core_startup (gnunet-service-consensus.c:2656)
==13987== by 0x50AC886: main_notify_handler (core_api.c:785)
==13987== by 0x4E433D3: receive_task (client.c:597)
==13987== by 0x4E7F988: run_ready (scheduler.c:597)
==13987== by 0x4E801D7: GNUNET_SCHEDULER_run (scheduler.c:786)
==13987== by 0x4E8F1F0: GNUNET_SERVICE_run (service.c:1816)
==13987== by 0x409964: main (gnunet-service-consensus.c:2778)
==13987==
Steps To ReproduceRun 'make check' in src/dv/. The second test will trigger the crash.
TagsNo tags attached.

Relationships

child of 0001795 closedschanzen DV is not implemented 

Activities

Florian Dold

2013-03-30 21:50

developer   ~0007021

Obviously the segfault is a problem with consensus.

However, the session id that dv currently uses for consensus only depends on the two reconciling neighbors.

Thus, if dv repeats the consensus, it should use another session id, and not join the old session, as the consensus service may not destroy a session right after the local client has left, but only after a timeout.

Of course this behavior is not necessary for 2-peer consensus, so it might be an option to add this as a special case to destroy the session once the local client leaves in a 2-peer consensus. Would this be preferable?

Christian Grothoff

2013-03-30 21:53

manager   ~0007022

How is that timeout until the service forgets about the existing session determined? Unless clocks are synchronized, I don't have a good way to generate fresh session IDs each time.

Also, yes, this is only a 2-peer consensus; still, obviously the 2nd peer might take a tiny bit longer (one last 'finish' message or something). In any case, you are right in that for 2-peer consensus, you ought to be able to destroy the session much faster, and that would be good and would help.

Christian Grothoff

2013-06-03 11:16

manager   ~0007147

Current version of DV no longer uses consensus, and consensus has changed dramatically, so this report is no longer relevant.

Issue History

Date ModifiedUsernameFieldChange
2013-03-30 16:30Christian GrothoffNew Issue
2013-03-30 16:30Christian GrothoffStatusnew => assigned
2013-03-30 16:30Christian GrothoffAssigned To => Florian Dold
2013-03-30 16:31Christian GrothoffRelationship addedchild of 0001795
2013-03-30 21:50Florian DoldNote Added: 0007021
2013-03-30 21:53Christian GrothoffNote Added: 0007022
2013-04-16 11:45Christian GrothoffCategoryConsensus service => consensus service
2013-06-03 11:16Christian GrothoffNote Added: 0007147
2013-06-03 11:16Christian GrothoffAssigned ToFlorian Dold => Christian Grothoff
2013-06-03 11:16Christian GrothoffReproducibilityalways => unable to reproduce
2013-06-03 11:16Christian GrothoffResolutionopen => won't fix
2013-06-03 11:16Christian GrothoffFixed in Version => 0.10.0
2013-06-03 11:16Christian GrothoffTarget Version => 0.10.0
2013-06-03 11:16Christian GrothoffStatusassigned => resolved
2013-12-24 19:54Christian GrothoffStatusresolved => closed