Out of memory error when trying to compile drizzletest.cc
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Drizzle |
Fix Released
|
Critical
|
Robert Klahn |
Bug Description
As of build 1096 we still two machines (debian 32 bit and centos 32 bit) where the machine runs out of memory when trying to compile drizzletest.cc
From Jay:
OK, so, I've tracked down the issue I was having with the replication branch to a difference in behaviour in atomic<> variables on CentOS (osindriz03) vs. other machines...hoping someone has an answer.
Here is the code which is behaving differently depending on the platform:
log_offset is declared as drizzled:
log_offset= 0;
uint64_t length= 42;
off_t cur_offset;
cur_offset= log_offset.
On ALL other platforms other than CentOS 5, the above code sets log_offset AND cur_offset equal to 50.
On CentOS, it sets log_offset to 50 and cur_offset to 0.
What does this mean? It means that the assignment to cur_offset is happening *before* the call to drizzled:
Without resorting back to mutexes, I am uncertain how to solve this particular timing/atomics problem. I'm hoping someone out there has more experience dealing with this.
Related branches
- Jay Pipes (community): Approve
- Stewart Smith (community): Approve
- Diff: None lines
- No reviews requested
- Diff: None lines
Changed in drizzle: | |
assignee: | nobody → Jay Pipes (jaypipes) |
importance: | Undecided → Critical |
milestone: | none → aloha |
status: | New → Confirmed |
Changed in drizzle: | |
assignee: | nobody → Robert Klahn (rklahn) |
Changed in drizzle: | |
status: | Confirmed → Fix Committed |
Changed in drizzle: | |
status: | Fix Committed → Fix Released |
The comment below is about an unrelated bug (also on CentOS, which is probably where the confusion arose). Assigning back to nobody for now. Devananda and I tracked it down to something in r1095 that produces the problem, so we should investigate from there.