Subject: | create pretends to succeed when atomic rename fails |
Date: | Thu, 8 Nov 2018 14:25:28 +0100 |
To: | bug-CDB_File [...] rt.cpan.org |
From: | Jan Ingvoldstad <jan-perl-rt-2018 [...] oyet.no> |
Hi,
This bug has been tested with CDB_File 0.97 with Perl 5.20.2 on Debian
Jessie, and CDB_File 0.99 with Perl 5.24.1 on Debian Stretch,
respectively. I have no patch, sorry.
To reproduce, you need e.g. a Linux with two filesystems, e.g. where
/tmp and /var/tmp are on different mounts.
See cdbtest.pl (attached) for an example.
Expected output from reproduced bug:
Target /var/tmp/test.cdb does not exist
But tmp /tmp/test.cdb.1737 still exists
Suggested fix: when an atomic rename fails, propagate the error, either
to be caught with eval(), or return undef, and add a notice about this
in the documentation.
Feature request: scrap the atomic rename requirement and permit rename
between different filesystems, with a caveat in the documentation that
this no longer guarantees atomicity.
Best regards,
Jan
Message body is not shown because sender requested not to inline it.