Compilation error in fdbbackup/FileDecoder.actor.cpp

In file included from /usr/include/fcntl.h:314,
                 from /tmp/src/foundationdb/fdbbackup/FileDecoder.actor.cpp:28:
In function ‘int open(const char*, int, ...)’,
    inlined from ‘int file_converter::DecodeRangeProgress::OpenFileImplActor1State<OpenFileImplActor1>::a_body1cont2(const int&, int) [with OpenFileImplActor1 = file_converter::DecodeRangeProgress::OpenFileImplActor1]’ at /tmp/src/foundationdb/fdbbackup/FileDecoder.actor.cpp:690:20:
/usr/include/x86_64-linux-gnu/bits/fcntl2.h:50:31: error: call to ‘__open_missing_mode’ declared with attribute error: open with O_CREAT or O_TMPFILE in second argument needs 3 arguments
   50 |           __open_missing_mode ();
      |           ~~~~~~~~~~~~~~~~~~~~^~
ninja: build stopped: subcommand failed.

Patch is very simple:

diff --git a/fdbbackup/FileDecoder.actor.cpp b/fdbbackup/FileDecoder.actor.cpp
index e69a1d370..c819d4f46 100644
--- a/fdbbackup/FileDecoder.actor.cpp
+++ b/fdbbackup/FileDecoder.actor.cpp
@@ -687,7 +687,7 @@ public:
                                }
                        }

-                       self->lfd = open(self->file.fileName.c_str(), O_WRONLY | O_CREAT | O_TRUNC);
+                       self->lfd = open(self->file.fileName.c_str(), O_WRONLY | O_CREAT | O_TRUNC, 0600);
                        if (self->lfd == -1) {
                                TraceEvent(SevError, "OpenLocalFileFailed").detail("File", self->file.fileName);
                                throw platform_error();

I have the patch in GitHub - uvatbc/foundationdb: FoundationDB - the open source, distributed, transactional key-value store, but I cannot create a PR because I am not in the list of contributors.

Is there a contributor here who can take my patch and apply it to TOT?

Thanks.

Any pointers?

Thanks! I’ve opened a PR from your repo.

1 Like

Thanks so much!
Main compiles successfully now.