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 @@ -351,6 +351,16 @@ std::error_code SerializedModuleLoaderBase::openModuleFile(
351
351
// Use the default arguments except for IsVolatile. Force avoiding the use of
352
352
// mmap to workaround issues on NFS when the swiftmodule file loaded changes
353
353
// on disk while it's in use.
354
+ //
355
+ // In practice, a swiftmodule file can chane when a client uses a
356
+ // swiftmodule file from a framework while the framework is recompiled and
357
+ // installed over existing files. Or when many processes rebuild the same
358
+ // module interface.
359
+ //
360
+ // We have seen these scenarios leading to deserialization errors that on
361
+ // the surface look like memory corruption.
362
+ //
363
+ // rdar://63755989
354
364
llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>> ModuleOrErr =
355
365
FS.getBufferForFile (ModulePath,
356
366
/* FileSize=*/ -1 ,
You can’t perform that action at this time.
0 commit comments