openjdk-1.8.0/fix-appcds-s-option-AppCDSLockFile.patch
2022-10-10 16:44:37 +08:00

44 lines
1.9 KiB
Diff
Executable File

From 4ea57acdd47696dd1d36c6efb1cc404b03b76aaf Mon Sep 17 00:00:00 2001
From: zhangyipeng <zhangyipeng7@huawei.com>
Date: Mon, 13 Sep 2021 09:31:12 +0800
Subject: [PATCH 17/23] add 007 0024-fix-appcds-s-option-AppCDSLockFile
Summary: < JDK> : add 007 0024-fix-appcds-s-option-AppCDSLockFile
LLT: NA
Patch Type: huawei
Bug url: NA
---
hotspot/src/share/vm/memory/filemap.cpp | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/hotspot/src/share/vm/memory/filemap.cpp b/hotspot/src/share/vm/memory/filemap.cpp
index 5858c9355..99b1f58d0 100644
--- a/hotspot/src/share/vm/memory/filemap.cpp
+++ b/hotspot/src/share/vm/memory/filemap.cpp
@@ -379,16 +379,20 @@ void FileMapInfo::open_for_write() {
if (realpath(filePath, buf) == NULL) {
fail_stop("A risky filePath:%s, buf:%s, length:%d", filePath, buf, length);
}
+ // Appcds lock file's path doesn't support "%p". Check it here.
+ const char* pts = strstr(AppCDSLockFile, "%p");
+ if (pts != NULL) {
+ fail_stop("Invalid appcds lock file path name, %s.", AppCDSLockFile);
+ }
_appcds_file_lock_path = os::strdup(AppCDSLockFile, mtInternal);
if (_appcds_file_lock_path == NULL) {
fail_stop("Failed to create appcds file lock.");
}
int lock_fd = open(_appcds_file_lock_path, O_CREAT | O_WRONLY | O_EXCL, S_IRUSR | S_IWUSR);
if (lock_fd < 0) {
- tty->print_cr("The lock path is: %s", _appcds_file_lock_path);
tty->print_cr("Failed to create jsa file !\n Please check: \n 1. The directory exists.\n "
"2. You have the permission.\n 3. Make sure no other process using the same lock file.\n");
- JVM_Halt(0);
+ fail_stop("Failed to create appcds lock file, the lock path is: %s.", _appcds_file_lock_path);
}
tty->print_cr("You are using file lock %s in concurrent mode", AppCDSLockFile);
}
--
2.22.0