#9221 closed Bugs (fixed)
message_queue deadlock on linux
Reported by: | Owned by: | Ion Gaztañaga | |
---|---|---|---|
Milestone: | To Be Determined | Component: | interprocess |
Version: | Boost 1.54.0 | Severity: | Problem |
Keywords: | message_queue deadlock | Cc: |
Description
I have a problem with message_queue on linux. there are two writers and one reader. some milliseconds after start application locks on receive and send methods. writers waits while(is_full()), reader waits while(is_empty()) (see attach); If I add manual synchronization in writers (scoped lock), application closes normal.
Attachments (1)
Change History (7)
by , 9 years ago
Attachment: | multithread_producer.cpp added |
---|
follow-up: 2 comment:1 by , 9 years ago
comment:2 by , 9 years ago
Replying to igaztanaga:
Thanks for the report. I'm still not able to reproduce the problem, but I'll try harder with different linux versions. Do you know the libc version in your system?
Thanks for reply. My libc version is 2.15. linux x86_64, kernel version is 3.5.0-030500-generic.
follow-up: 4 comment:3 by , 9 years ago
Status: | new → assigned |
---|
I've reproduced the bug, the queue only works for single proucer / single consumer. I have a fix adding some blocked producer and consumer counters. You test case seems fixed with these counters. I'll commit it to trunk ASAP, it would be nice if you could tell me if the problem was completely solved.
comment:4 by , 9 years ago
Replying to igaztanaga:
I've reproduced the bug, the queue only works for single proucer / single consumer. I have a fix adding some blocked producer and consumer counters. You test case seems fixed with these counters. I'll commit it to trunk ASAP, it would be nice if you could tell me if the problem was completely solved.
Ok, I'll check my test after your commit.
follow-up: 6 comment:5 by , 9 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
comment:6 by , 9 years ago
Replying to igaztanaga:
(In [86316]) Fixes #9221 ("message_queue deadlock on linux")
I can't reproduce this bug on trunk. Problem was solved. Thank you.
Thanks for the report. I'm still not able to reproduce the problem, but I'll try harder with different linux versions. Do you know the libc version in your system?