Bug 771184

Summary: Assert on exit of corosync if clients are connected (probably libqb)
Product: [Retired] Corosync Cluster Engine Reporter: Jan Friesse <jfriesse>
Component: unknownAssignee: Angus Salkeld <asalkeld>
Status: CLOSED UPSTREAM QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 1.4CC: asalkeld, jfriesse, sdake
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-01-11 07:38:02 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Jan Friesse 2012-01-02 11:24:32 UTC
Steps to Reproduce:
1. valgrind corosync -f
2. cpgbench
3. ctrl+c on valgrind corosync -f
  
Actual results:
Jan 02 12:21:44 info    [MAIN  ] cs_ipcs_connection_destroyed()
Jan 02 12:21:44 notice  [SERV  ] Service engine unloaded: corosync cluster closed process group service v1.01
==31042== Invalid read of size 4
==31042==    at 0x547C020: qb_ipcs_dispatch_connection_request (ipcs.c:656)
==31042==    by 0x54782BD: _poll_dispatch_and_take_back_ (loop_poll.c:208)
==31042==    by 0x5477B8C: qb_loop_run_level (loop.c:43)
==31042==    by 0x5477F97: qb_loop_run (loop.c:150)
==31042==    by 0x407A65: main (main.c:1295)
==31042==  Address 0xa377ce0 is 1,184 bytes inside a block of size 1,264 free'd
==31042==    at 0x4C2695D: free (vg_replace_malloc.c:366)
==31042==    by 0x547B9D2: qb_ipcs_connection_unref (ipcs.c:483)
==31042==    by 0x547BB04: qb_ipcs_disconnect (ipcs.c:515)
==31042==    by 0x547B1A0: qb_ipcs_unref (ipcs.c:223)
==31042==    by 0x547B1F8: qb_ipcs_destroy (ipcs.c:233)
==31042==    by 0x407DF7: cs_ipcs_service_destroy (ipc_glue.c:201)
==31042==    by 0x40B427: service_unlink_schedwrk_handler (service.c:471)
==31042==    by 0x547A067: job_dispatch (loop_job.c:38)
==31042==    by 0x5477B8C: qb_loop_run_level (loop.c:43)
==31042==    by 0x5477F97: qb_loop_run (loop.c:150)
==31042==    by 0x407A65: main (main.c:1295)
==31042==
==31042== Invalid read of size 8
==31042==    at 0x547BEAB: _request_q_len_get (ipcs.c:618)
==31042==    by 0x547C03F: qb_ipcs_dispatch_connection_request (ipcs.c:659)
==31042==    by 0x54782BD: _poll_dispatch_and_take_back_ (loop_poll.c:208)
==31042==    by 0x5477B8C: qb_loop_run_level (loop.c:43)
==31042==    by 0x5477F97: qb_loop_run (loop.c:150)
==31042==    by 0x407A65: main (main.c:1295)
...
corosync: ipcs.c:473: qb_ipcs_connection_unref: Assertion `0' failed.


Expected results:
No assert

Additional info:
Newest coolest corosync (39ff78c803e76559396bf6707ebd84eac85a4335) with newest coolest libqb (c8e97a1c2e260c65eed520e5fe04995f74ab562a)

Comment 1 Angus Salkeld 2012-01-03 02:46:45 UTC
Confirmed to be libqb:

https://github.com/asalkeld/libqb/issues/26

Comment 2 Angus Salkeld 2012-01-11 06:16:51 UTC
Fixed in libqb > 0.8.1

Comment 3 Jan Friesse 2012-01-11 07:38:02 UTC
(In reply to comment #2)
> Fixed in libqb > 0.8.1

Angus,
this is upstream bug so POST state is not needed. Simply close as upstream.