From b1eb3e8746767d6876a634d314b804dc2086616d Mon Sep 17 00:00:00 2001
From: mattijs <mattijs>
Date: Mon, 18 Mar 2024 11:54:40 +0000
Subject: [PATCH] BUG: fileHandler: disable parallel side effects. Fixes #3105

---
 .../uncollatedFileOperation/uncollatedFileOperation.C | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/OpenFOAM/global/fileOperations/uncollatedFileOperation/uncollatedFileOperation.C b/src/OpenFOAM/global/fileOperations/uncollatedFileOperation/uncollatedFileOperation.C
index 35fb161016f..75996732c3b 100644
--- a/src/OpenFOAM/global/fileOperations/uncollatedFileOperation/uncollatedFileOperation.C
+++ b/src/OpenFOAM/global/fileOperations/uncollatedFileOperation/uncollatedFileOperation.C
@@ -6,7 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2017 OpenFOAM Foundation
-    Copyright (C) 2020-2023 OpenCFD Ltd.
+    Copyright (C) 2020-2024 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -716,6 +716,14 @@ bool Foam::fileOperations::uncollatedFileOperation::read
         const bool oldMasterOnly = regIOobject::masterOnlyReading;
         regIOobject::masterOnlyReading = masterOnly;
 
+        const bool oldParRun = UPstream::parRun();
+        if (masterOnly)
+        {
+            // Reading on master only.
+            // Avoid side effects from io.readStream below.
+            UPstream::parRun(false);
+        }
+
         // Read file
         ok = io.readData(io.readStream(typeName));
         io.close();
@@ -723,6 +731,7 @@ bool Foam::fileOperations::uncollatedFileOperation::read
         // Restore flags
         io.globalObject(oldGlobal);
         regIOobject::masterOnlyReading = oldMasterOnly;
+        UPstream::parRun(oldParRun);
 
         if (debug)
         {
-- 
GitLab