# HG changeset patch # User hseigel # Date 1511744150 0 # Node ID fc789043683d3cf424f97176bd77cf7abe5bd01a # Parent 8d1cd1a98556a14bd81a06100762759b0a55db92 7197672: There are issues with shared data on windows Summary: On Windows, set rw protection on the CDS file just before removing it. Reviewed-by: dcubed, iklam diff -r 8d1cd1a98556 -r fc789043683d src/share/vm/memory/filemap.cpp --- a/src/share/vm/memory/filemap.cpp Mon Nov 27 00:38:41 2017 +0000 +++ b/src/share/vm/memory/filemap.cpp Mon Nov 27 00:55:50 2017 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -185,7 +185,12 @@ tty->print_cr(" %s", _full_path); } - // Remove the existing file in case another process has it open. +#ifdef _WINDOWS // On Windows, need WRITE permission to remove the file. + chmod(_full_path, _S_IREAD | _S_IWRITE); +#endif + + // Use remove() to delete the existing file because, on Unix, this will + // allow processes that have it open continued access to the file. remove(_full_path); int fd = open(_full_path, O_RDWR | O_CREAT | O_TRUNC | O_BINARY, 0444); if (fd < 0) {