#4907 closed Bugs (fixed)
message queue temp dir inconsistent if WMI calls fail.
Reported by: | Owned by: | Ion Gaztañaga | |
---|---|---|---|
Milestone: | To Be Determined | Component: | interprocess |
Version: | Boost 1.45.0 | Severity: | Showstopper |
Keywords: | Cc: |
Description
If the WMI call to get the latest boot time fails then a temporary dir under boost_interprocess is not created. This is problematic since subsequent calls to the WMI can succeed and you end up with message queues that can't connect to each other.
I have seen this happen consistently on XP when the app creating the message queue is a service.
Change History (6)
comment:1 by , 12 years ago
comment:2 by , 12 years ago
This seems like the same problem as ticket:4895.
I hope it is fixed soon, because I'm unable to use boost::interprocess. If a patch is submitted here, I can test it on Windows XP and Windows 7.
comment:3 by , 12 years ago
Please try SVN for recent changes. I'm not an expert in COM issues, so I would need some help with this issue. Thanks for the report.
comment:4 by , 12 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
WMI is provoking a lot of problems for Boost Interprocess users. I've decided to remove bootstamp use in windows to obtain kernel persistence in Windows. This means that windows shared memory/queues will survive to reboots, but this behaviour is allowed by POSIX. Using bootstamps to detect reboots is doing more harm than good.
WMI is removed in Boost 1.47
comment:5 by , 11 years ago
Since WMI usage was not removed for 1.47.0 please have a look at my additions to #5392!
You can see this happen by trying to create two message queues in two simultaneous threads on XP. The call to CoInitializeSecurity() is not multithread safe under XP and will cause the retrieval of the boot time to fail. See win32_api.hpp:1457