diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2021-12-16 21:26:22 +0100 |
---|---|---|
committer | Eelco Dolstra <edolstra@gmail.com> | 2021-12-16 22:02:50 +0100 |
commit | ec8f24ed3a3115cba85f908515c423112e5b13e0 (patch) | |
tree | 986907480e950a2b6c0fd1079a9ad96a0e38dd46 /src/libstore/filetransfer.cc | |
parent | c260640dec6e35c714b666a1e7adede5aab6972a (diff) |
Ignore EPERM when unsharing FS state
On Docker (but not podman), unshare(CLONE_FS) fails with EPERM. So
let's ignore it and hope nothing bad happens.
Attempted fix for #5777.
Diffstat (limited to 'src/libstore/filetransfer.cc')
-rw-r--r-- | src/libstore/filetransfer.cc | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/src/libstore/filetransfer.cc b/src/libstore/filetransfer.cc index 4621a8217..17980ab22 100644 --- a/src/libstore/filetransfer.cc +++ b/src/libstore/filetransfer.cc @@ -544,13 +544,7 @@ struct curlFileTransfer : public FileTransfer stopWorkerThread(); }); -#ifdef __linux__ - /* Cause this thread to not share any FS attributes with the main thread, - because this causes setns() in restoreMountNamespace() to fail. - Ideally, this would happen in the std::thread() constructor. */ - if (unshare(CLONE_FS) != 0) - throw SysError("unsharing filesystem state in download thread"); -#endif + unshareFilesystem(); std::map<CURL *, std::shared_ptr<TransferItem>> items; |