Opened 8 weeks ago

Last modified 8 weeks 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 weeks ago by jmroot (Joshua Root)

It would be nice to figure out which versions of macOS have that bug, since as the commit points out the workaround affects performance.

comment:2 Changed 8 weeks 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.

Note: See TracTickets for help on using tickets.