Opened 8 months ago
Last modified 8 months ago
#69463 assigned defect
libuv-devel @1.47.0: Add patch to fix data corruption problem
Reported by: | ryandesign (Ryan Carsten Schmidt) | Owned by: | michaelld (Michael Dickens) |
---|---|---|---|
Priority: | High | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | herbygillot (Herby Gillot) | |
Port: | libuv-devel |
Description
The developers of libuv deleted code that prevented a data corruption problem on old versions of macOS:
https://github.com/libuv/libuv/commit/737f4f953fa908863c3492e6c6a1188acb58370c
This change shipped in libuv 1.47.0. If we are going to ship this version of libuv to users of older macOS versions we should apply a patch to re-add that fix.
Change History (2)
comment:1 Changed 8 months ago by jmroot (Joshua Root)
comment:2 Changed 8 months ago by ryandesign (Ryan Carsten Schmidt)
For an approximate timeframe, the original code was added on 2012-10-01 with the comment Serialize writes on OS X, concurrent pwrite() calls result in data loss
and a fixup committed on 2012-10-09 changed the comment to Serialize writes on OS X, concurrent write() and pwrite() calls result in data loss
. There is a mention of a nodejs test, test/simple/test-fs-sir-writes-alot.js, that this fixed; if we could find that test and figure out how to run it, we could test it on various systems to see which ones are affected. OS X 10.8 Mountain Lion was the current version at that time.
It would be nice to figure out which versions of macOS have that bug, since as the commit points out the workaround affects performance.