File tree Expand file tree Collapse file tree 1 file changed +10
-0
lines changed Expand file tree Collapse file tree 1 file changed +10
-0
lines changed Original file line number Diff line number Diff line change @@ -341,6 +341,16 @@ std::error_code SerializedModuleLoaderBase::openModuleFile(
341
341
// Use the default arguments except for IsVolatile. Force avoiding the use of
342
342
// mmap to workaround issues on NFS when the swiftmodule file loaded changes
343
343
// on disk while it's in use.
344
+ //
345
+ // In practice, a swiftmodule file can chane when a client uses a
346
+ // swiftmodule file from a framework while the framework is recompiled and
347
+ // installed over existing files. Or when many processes rebuild the same
348
+ // module interface.
349
+ //
350
+ // We have seen these scenarios leading to deserialization errors that on
351
+ // the surface look like memory corruption.
352
+ //
353
+ // rdar://63755989
344
354
llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>> ModuleOrErr =
345
355
FS.getBufferForFile (ModulePath,
346
356
/* FileSize=*/ -1 ,
You can’t perform that action at this time.
0 commit comments