aboutsummaryrefslogtreecommitdiff
path: root/dev/ci
diff options
context:
space:
mode:
authorEmilio Jesus Gallego Arias2020-05-14 02:56:26 +0200
committerEmilio Jesus Gallego Arias2020-05-16 19:21:45 +0200
commitdaa5d0f71657d49965f1334e417f6e0f2e13e8d9 (patch)
treeddc4370cbd7a17c9ec138bab0b7803c504be3401 /dev/ci
parent2b0df4db404a1eb5b149e87ae0d23a5352b18f67 (diff)
[micromega] Revert bad change from 5001deed21e8f4027411cc6413a9d2b98e1bccee
Analysis by Jason Gross: > The previous semantics was to reset the file offset to 0 during the > unlock operation, unless it fails, in which case you'd roll back the > file offset to it's present position (and very dubiously not report > any issues). The new semantics say to always roll the file offset > back to it's initial position, meaning that the position is at the > end of the file after unlocking. As far as I can tell, this results > in appending marshelled blobs to the cache file on every call to > add, rather than overwriting the cache file with the marshelled blob > of the updated table. Presumably unmarshelling the concatenation of > marshelled data can result in segfaults somehow? This also explains > why the bug only shows up sometimes; you need to get the system into > a state where it writes to the cache in a way that concatenates > blobs in the right way, but once you have such a cache you'll > segfault every time you read from it. > > I think we should probably assert false in the with block, or just > remove it entirely http://man7.org/linux/man-pages/man3/lockf.3.html > doesn't say anything about lockf erroring on unlocking). If we start > seeing errors, we can turn it into a warning. Closes: #12072
Diffstat (limited to 'dev/ci')
0 files changed, 0 insertions, 0 deletions