Skip to content

Commit

Permalink
Merge pull request #13438 from hangshao0/zos
Browse files Browse the repository at this point in the history
Change SCC default directory to /tmp on z/OS
  • Loading branch information
pshipton committed Sep 7, 2021
2 parents b4f9d6e + 86656f2 commit 9bb046c
Show file tree
Hide file tree
Showing 13 changed files with 148 additions and 76 deletions.
6 changes: 3 additions & 3 deletions runtime/shared_common/OSCache.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2001, 2020 IBM Corp. and others
* Copyright (c) 2001, 2021 IBM Corp. and others
*
* This program and the accompanying materials are made available under
* the terms of the Eclipse Public License 2.0 which accompanies this
Expand Down Expand Up @@ -208,7 +208,7 @@ SH_OSCache::getCacheDir(J9JavaVM* vm, const char* ctrlDirName, char* buffer, UDA
flags |= J9SHMEM_GETDIR_APPEND_BASEDIR;
}

#if defined(OPENJ9_BUILD)
#if defined(OPENJ9_BUILD) && !defined(J9ZOS390)
if ((NULL == ctrlDirName)
&& J9_ARE_NO_BITS_SET(vm->sharedCacheAPI->runtimeFlags, J9SHR_RUNTIMEFLAG_ENABLE_GROUP_ACCESS)
) {
Expand All @@ -218,7 +218,7 @@ SH_OSCache::getCacheDir(J9JavaVM* vm, const char* ctrlDirName, char* buffer, UDA

flags |= J9SHMEM_GETDIR_USE_USERHOME;
}
#endif /*defined(OPENJ9_BUILD) */
#endif /*defined(OPENJ9_BUILD) && !defined(J9ZOS390) */

rc = j9shmem_getDir(ctrlDirName, flags, buffer, bufferSize);

Expand Down
31 changes: 18 additions & 13 deletions runtime/tests/shared/CacheDirPerm.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2001, 2020 IBM Corp. and others
* Copyright (c) 2001, 2021 IBM Corp. and others
*
* This program and the accompanying materials are made available under
* the terms of the Eclipse Public License 2.0 which accompanies this
Expand Down Expand Up @@ -41,16 +41,21 @@ extern "C" {

#define EXISTING_DIR_PERM NEW_DIR_PERM
#if defined(OPENJ9_BUILD)
#define NON_EXISTING_DEFAULT_DIR_PERM J9SH_DIRPERM
#define EXISTING_DEFAULT_DIR_PERM NEW_DIR_PERM
#else
#define NON_EXISTING_DEFAULT_DIR_PERM J9SH_DIRPERM_DEFAULT_TMP
#if defined(J9ZOS390)
/* on z/OS permission of existing default directory under /tmp is not changed to J9SH_DIRPERM_DEFAULT_TMP. */
#define EXISTING_DEFAULT_DIR_PERM NEW_DIR_PERM
#else /* defined(J9ZOS390) */
#define EXISTING_DEFAULT_DIR_PERM J9SH_DIRPERM_DEFAULT_TMP
#endif /* defined(J9ZOS390) */
#define EXISTING_DEFAULT_DIR_PERM NEW_DIR_PERM
#if defined(J9ZOS390)
/* on z/OS permission of new default directory under /tmp is J9SH_DIRPERM_DEFAULT_TMP */
#define NON_EXISTING_DEFAULT_DIR_PERM J9SH_DIRPERM_DEFAULT_TMP
#else /* defined(J9ZOS390) */
#define NON_EXISTING_DEFAULT_DIR_PERM J9SH_DIRPERM
#endif /* defined(J9ZOS390) */
#else /* defined(OPENJ9_BUILD) */
#define NON_EXISTING_DEFAULT_DIR_PERM J9SH_DIRPERM_DEFAULT_TMP
#if defined(J9ZOS390)
/* on z/OS permission of existing default directory under /tmp is not changed to J9SH_DIRPERM_DEFAULT_TMP. */
#define EXISTING_DEFAULT_DIR_PERM NEW_DIR_PERM
#else /* defined(J9ZOS390) */
#define EXISTING_DEFAULT_DIR_PERM J9SH_DIRPERM_DEFAULT_TMP
#endif /* defined(J9ZOS390) */
#endif /* defined(OPENJ9_BUILD) */

extern "C" IDATA removeTempDir(J9JavaVM *vm, char *dir);
Expand Down Expand Up @@ -83,11 +88,11 @@ CacheDirPerm::getTempCacheDir(J9JavaVM *vm, I_32 cacheType, bool useDefaultDir,

if (useDefaultDir) {
flags |= J9SHMEM_GETDIR_APPEND_BASEDIR;
#if defined(OPENJ9_BUILD)
#if defined(OPENJ9_BUILD) && !defined(J9ZOS390)
if (!groupAccess) {
flags |= J9SHMEM_GETDIR_USE_USERHOME;
}
#endif /* defined(OPENJ9_BUILD) */
#endif /* defined(OPENJ9_BUILD) && !defined(J9ZOS390) */
}

memset(cacheDir, 0, J9SH_MAXPATH);
Expand Down
10 changes: 5 additions & 5 deletions runtime/tests/shared/CorruptCacheTest.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2001, 2020 IBM Corp. and others
* Copyright (c) 2001, 2021 IBM Corp. and others
*
* This program and the accompanying materials are made available under
* the terms of the Eclipse Public License 2.0 which accompanies this
Expand Down Expand Up @@ -777,9 +777,9 @@ zeroOutCache(J9JavaVM *vm, I_32 cacheType)
U_32 flags = J9SHMEM_GETDIR_APPEND_BASEDIR;
PORT_ACCESS_FROM_JAVAVM(vm);

#if defined(OPENJ9_BUILD)
#if defined(OPENJ9_BUILD) && !defined(J9ZOS390)
flags |= J9SHMEM_GETDIR_USE_USERHOME;
#endif /* defined(OPENJ9_BUILD) */
#endif /* defined(OPENJ9_BUILD) && !defined(J9ZOS390) */

rc = j9shmem_getDir(NULL, flags, baseDir, J9SH_MAXPATH);
if (rc < 0) {
Expand Down Expand Up @@ -843,9 +843,9 @@ truncateCache(J9JavaVM *vm, I_32 cacheType)
U_32 flags = J9SHMEM_GETDIR_APPEND_BASEDIR;
PORT_ACCESS_FROM_JAVAVM(vm);

#if defined(OPENJ9_BUILD)
#if defined(OPENJ9_BUILD) && !defined(J9ZOS390)
flags |= J9SHMEM_GETDIR_USE_USERHOME;
#endif /* defined(OPENJ9_BUILD) */
#endif /* defined(OPENJ9_BUILD) && !defined(J9ZOS390) */

rc = j9shmem_getDir(NULL, flags, baseDir, J9SH_MAXPATH);
if (rc < 0) {
Expand Down
32 changes: 16 additions & 16 deletions runtime/tests/shared/OSCacheTestMmap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,9 @@ SH_OSCacheTestMmap::testBasic(J9PortLibrary *portLibrary, J9JavaVM *vm)
J9PortShcVersion versionData;
U_32 flags = J9SHMEM_GETDIR_APPEND_BASEDIR;

#if defined(OPENJ9_BUILD)
#if defined(OPENJ9_BUILD) && !defined(J9ZOS390)
flags |= J9SHMEM_GETDIR_USE_USERHOME;
#endif /* defined(OPENJ9_BUILD) */
#endif /* defined(OPENJ9_BUILD) && !defined(J9ZOS390) */

setCurrentCacheVersion(vm, J2SE_CURRENT_VERSION, &versionData);
versionData.cacheType = J9PORT_SHR_CACHE_TYPE_PERSISTENT;
Expand Down Expand Up @@ -142,9 +142,9 @@ SH_OSCacheTestMmap::testConstructor(J9PortLibrary *portLibrary, J9JavaVM *vm)
J9PortShcVersion versionData;
U_32 flags = J9SHMEM_GETDIR_APPEND_BASEDIR;

#if defined(OPENJ9_BUILD)
#if defined(OPENJ9_BUILD) && !defined(J9ZOS390)
flags |= J9SHMEM_GETDIR_USE_USERHOME;
#endif /* defined(OPENJ9_BUILD) */
#endif /* defined(OPENJ9_BUILD) && !defined(J9ZOS390) */

setCurrentCacheVersion(vm, J2SE_CURRENT_VERSION, &versionData);
versionData.cacheType = J9PORT_SHR_CACHE_TYPE_PERSISTENT;
Expand Down Expand Up @@ -214,9 +214,9 @@ SH_OSCacheTestMmap::testFailedConstructor(J9PortLibrary *portLibrary, J9JavaVM *
J9PortShcVersion versionData;
U_32 flags = J9SHMEM_GETDIR_APPEND_BASEDIR;

#if defined(OPENJ9_BUILD)
#if defined(OPENJ9_BUILD) && !defined(J9ZOS390)
flags |= J9SHMEM_GETDIR_USE_USERHOME;
#endif /* defined(OPENJ9_BUILD) */
#endif /* defined(OPENJ9_BUILD) && !defined(J9ZOS390) */

setCurrentCacheVersion(vm, J2SE_CURRENT_VERSION, &versionData);
versionData.cacheType = J9PORT_SHR_CACHE_TYPE_PERSISTENT;
Expand Down Expand Up @@ -313,9 +313,9 @@ SH_OSCacheTestMmap::testMultipleCreate(J9PortLibrary* portLibrary, J9JavaVM *vm,
UDATA childargc = 0;
U_32 flags = J9SHMEM_GETDIR_APPEND_BASEDIR;

#if defined(OPENJ9_BUILD)
#if defined(OPENJ9_BUILD) && !defined(J9ZOS390)
flags |= J9SHMEM_GETDIR_USE_USERHOME;
#endif /* defined(OPENJ9_BUILD) */
#endif /* defined(OPENJ9_BUILD) && !defined(J9ZOS390) */

setCurrentCacheVersion(vm, J2SE_CURRENT_VERSION, &versionData);
versionData.cacheType = J9PORT_SHR_CACHE_TYPE_PERSISTENT;
Expand Down Expand Up @@ -460,9 +460,9 @@ SH_OSCacheTestMmap::testGetAllCacheStatistics(J9JavaVM* vm)
}
piconfig->sharedClassDebugAreaBytes = -1;

#if defined(OPENJ9_BUILD)
#if defined(OPENJ9_BUILD) && !defined(J9ZOS390)
flags |= J9SHMEM_GETDIR_USE_USERHOME;
#endif /* defined(OPENJ9_BUILD) */
#endif /* defined(OPENJ9_BUILD) && !defined(J9ZOS390) */

ret = j9shmem_getDir(ctrlDirName, flags, cacheDirName, J9SH_MAXPATH);
if (0 > ret) {
Expand Down Expand Up @@ -570,9 +570,9 @@ SH_OSCacheTestMmap::testMutex(J9PortLibrary *portLibrary, J9JavaVM *vm, struct j
UDATA childargc = 0;
U_32 flags = J9SHMEM_GETDIR_APPEND_BASEDIR;

#if defined(OPENJ9_BUILD)
#if defined(OPENJ9_BUILD) && !defined(J9ZOS390)
flags |= J9SHMEM_GETDIR_USE_USERHOME;
#endif /* defined(OPENJ9_BUILD) */
#endif /* defined(OPENJ9_BUILD) && !defined(J9ZOS390) */

setCurrentCacheVersion(vm, J2SE_CURRENT_VERSION, &versionData);
versionData.cacheType = J9PORT_SHR_CACHE_TYPE_PERSISTENT;
Expand Down Expand Up @@ -663,9 +663,9 @@ SH_OSCacheTestMmap::testMutexHang(J9PortLibrary *portLibrary, J9JavaVM *vm, stru
UDATA childargc = 0;
U_32 flags = J9SHMEM_GETDIR_APPEND_BASEDIR;

#if defined(OPENJ9_BUILD)
#if defined(OPENJ9_BUILD) && !defined(J9ZOS390)
flags |= J9SHMEM_GETDIR_USE_USERHOME;
#endif /* defined(OPENJ9_BUILD) */
#endif /* defined(OPENJ9_BUILD) && !defined(J9ZOS390) */

setCurrentCacheVersion(vm, J2SE_CURRENT_VERSION, &versionData);
versionData.cacheType = J9PORT_SHR_CACHE_TYPE_PERSISTENT;
Expand Down Expand Up @@ -757,9 +757,9 @@ SH_OSCacheTestMmap::testDestroy (J9PortLibrary* portLibrary, J9JavaVM *vm, struc
UDATA childargc = 0;
U_32 flags = J9SHMEM_GETDIR_APPEND_BASEDIR;

#if defined(OPENJ9_BUILD)
#if defined(OPENJ9_BUILD) && !defined(J9ZOS390)
flags |= J9SHMEM_GETDIR_USE_USERHOME;
#endif /* defined(OPENJ9_BUILD) */
#endif /* defined(OPENJ9_BUILD) && !defined(J9ZOS390) */

setCurrentCacheVersion(vm, J2SE_CURRENT_VERSION, &versionData);
versionData.cacheType = J9PORT_SHR_CACHE_TYPE_PERSISTENT;
Expand Down
36 changes: 18 additions & 18 deletions runtime/tests/shared/OSCacheTestSysv.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,9 @@ SH_OSCacheTestSysv::testBasic(J9PortLibrary* portLibrary, J9JavaVM *vm)
void* allocatedMem = NULL;
UDATA memSize = 0;

#if defined(OPENJ9_BUILD)
#if defined(OPENJ9_BUILD) && !defined(J9ZOS390)
flags |= J9SHMEM_GETDIR_USE_USERHOME;
#endif /* defined(OPENJ9_BUILD) */
#endif /* defined(OPENJ9_BUILD) && !defined(J9ZOS390) */

setCurrentCacheVersion(vm, J2SE_CURRENT_VERSION, &versionData);
versionData.cacheType = J9PORT_SHR_CACHE_TYPE_NONPERSISTENT;
Expand Down Expand Up @@ -205,9 +205,9 @@ SH_OSCacheTestSysv::testMultipleCreate(J9PortLibrary* portLibrary, J9JavaVM *vm,
UDATA memSize = SH_OSCache::getRequiredConstrBytes();
void* allocatedMem = NULL;

#if defined(OPENJ9_BUILD)
#if defined(OPENJ9_BUILD) && !defined(J9ZOS390)
flags |= J9SHMEM_GETDIR_USE_USERHOME;
#endif /* defined(OPENJ9_BUILD) */
#endif /* defined(OPENJ9_BUILD) && !defined(J9ZOS390) */
setCurrentCacheVersion(vm, J2SE_CURRENT_VERSION, &versionData);
versionData.cacheType = J9PORT_SHR_CACHE_TYPE_NONPERSISTENT;

Expand Down Expand Up @@ -362,9 +362,9 @@ SH_OSCacheTestSysv::testConstructor(J9PortLibrary *portLibrary, J9JavaVM *vm)
UDATA memSize = 0;
void* allocatedMem = NULL;

#if defined(OPENJ9_BUILD)
#if defined(OPENJ9_BUILD) && !defined(J9ZOS390)
flags |= J9SHMEM_GETDIR_USE_USERHOME;
#endif /* defined(OPENJ9_BUILD) */
#endif /* defined(OPENJ9_BUILD) && !defined(J9ZOS390) */
setCurrentCacheVersion(vm, J2SE_CURRENT_VERSION, &versionData);
versionData.cacheType = J9PORT_SHR_CACHE_TYPE_NONPERSISTENT;

Expand Down Expand Up @@ -453,9 +453,9 @@ SH_OSCacheTestSysv::testFailedConstructor(J9PortLibrary *portLibrary, J9JavaVM *
UDATA memSize = 0;
void* allocatedMem = NULL;

#if defined(OPENJ9_BUILD)
#if defined(OPENJ9_BUILD) && !defined(J9ZOS390)
flags |= J9SHMEM_GETDIR_USE_USERHOME;
#endif /* defined(OPENJ9_BUILD) */
#endif /* defined(OPENJ9_BUILD) && !defined(J9ZOS390) */
setCurrentCacheVersion(vm, J2SE_CURRENT_VERSION, &versionData);
versionData.cacheType = J9PORT_SHR_CACHE_TYPE_NONPERSISTENT;

Expand Down Expand Up @@ -550,9 +550,9 @@ SH_OSCacheTestSysv::testGetAllCacheStatistics(J9JavaVM* vm)
}
memset(piconfig, 0 , sizeof(J9SharedClassPreinitConfig));

#if defined(OPENJ9_BUILD)
#if defined(OPENJ9_BUILD) && !defined(J9ZOS390)
flags |= (J9SHMEM_GETDIR_USE_USERHOME | J9SHMEM_GETDIR_APPEND_BASEDIR);
#endif /* defined(OPENJ9_BUILD) */
#endif /* defined(OPENJ9_BUILD) && !defined(J9ZOS390) */

ret = j9shmem_getDir(ctrlDirName, flags, cacheDirName, J9SH_MAXPATH);
if (0 > ret) {
Expand Down Expand Up @@ -673,9 +673,9 @@ SH_OSCacheTestSysv::testMutex(J9PortLibrary *portLibrary, J9JavaVM *vm, struct j
UDATA memSize = 0;
void* allocatedMem = NULL;

#if defined(OPENJ9_BUILD)
#if defined(OPENJ9_BUILD) && !defined(J9ZOS390)
flags |= J9SHMEM_GETDIR_USE_USERHOME;
#endif /* defined(OPENJ9_BUILD) */
#endif /* defined(OPENJ9_BUILD) && !defined(J9ZOS390) */
setCurrentCacheVersion(vm, J2SE_CURRENT_VERSION, &versionData);
versionData.cacheType = J9PORT_SHR_CACHE_TYPE_NONPERSISTENT;

Expand Down Expand Up @@ -774,9 +774,9 @@ SH_OSCacheTestSysv::testMutexHang(J9PortLibrary *portLibrary, J9JavaVM *vm, stru
UDATA memSize = 0;
void* allocatedMem = NULL;

#if defined(OPENJ9_BUILD)
#if defined(OPENJ9_BUILD) && !defined(J9ZOS390)
flags |= J9SHMEM_GETDIR_USE_USERHOME;
#endif /* defined(OPENJ9_BUILD) */
#endif /* defined(OPENJ9_BUILD) && !defined(J9ZOS390) */
setCurrentCacheVersion(vm, J2SE_CURRENT_VERSION, &versionData);
versionData.cacheType = J9PORT_SHR_CACHE_TYPE_NONPERSISTENT;

Expand Down Expand Up @@ -872,9 +872,9 @@ SH_OSCacheTestSysv::testSize(J9PortLibrary* portLibrary, J9JavaVM *vm)
UDATA memSize = 0;
void* allocatedMem = NULL;

#if defined(OPENJ9_BUILD)
#if defined(OPENJ9_BUILD) && !defined(J9ZOS390)
flags |= J9SHMEM_GETDIR_USE_USERHOME;
#endif /* defined(OPENJ9_BUILD) */
#endif /* defined(OPENJ9_BUILD) && !defined(J9ZOS390) */
setCurrentCacheVersion(vm, J2SE_CURRENT_VERSION, &versionData);
versionData.cacheType = J9PORT_SHR_CACHE_TYPE_NONPERSISTENT;

Expand Down Expand Up @@ -1033,9 +1033,9 @@ SH_OSCacheTestSysv::testDestroy (J9PortLibrary* portLibrary, J9JavaVM *vm, struc
UDATA memSize = 0;
void *allocatedMem = NULL;

#if defined(OPENJ9_BUILD)
#if defined(OPENJ9_BUILD) && !defined(J9ZOS390)
flags |= J9SHMEM_GETDIR_USE_USERHOME;
#endif /* defined(OPENJ9_BUILD) */
#endif /* defined(OPENJ9_BUILD) && !defined(J9ZOS390) */
setCurrentCacheVersion(vm, J2SE_CURRENT_VERSION, &versionData);
versionData.cacheType = J9PORT_SHR_CACHE_TYPE_NONPERSISTENT;

Expand Down
6 changes: 3 additions & 3 deletions runtime/tests/shared/SharedCacheAPITest.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2001, 2019 IBM Corp. and others
* Copyright (c) 2001, 2021 IBM Corp. and others
*
* This program and the accompanying materials are made available under
* the terms of the Eclipse Public License 2.0 which accompanies this
Expand Down Expand Up @@ -50,9 +50,9 @@ getCacheDir(J9JavaVM *vm, char *cacheDir)
char cacheDirNoTestBasedir[J9SH_MAXPATH];
U_32 flags = J9SHMEM_GETDIR_APPEND_BASEDIR;

#if defined(OPENJ9_BUILD)
#if defined(OPENJ9_BUILD) && !defined(J9ZOS390)
flags |= J9SHMEM_GETDIR_USE_USERHOME;
#endif /* defined(OPENJ9_BUILD) */
#endif /* defined(OPENJ9_BUILD) && !defined(J9ZOS390) */

rc = j9shmem_getDir(NULL, flags, cacheDirNoTestBasedir, J9SH_MAXPATH);
if (rc < 0) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2010, 2020 IBM Corp. and others
* Copyright (c) 2010, 2021 IBM Corp. and others
*
* This program and the accompanying materials are made available under
* the terms of the Eclipse Public License 2.0 which accompanies this
Expand Down Expand Up @@ -165,7 +165,7 @@ public class TestUtils {
}
else
{
if (false == isIbmJava8()) {
if (false == isDefaultDirTmp()) {
config.put("defaultCacheGroupAccessLocation","/tmp/");
}
config.put("defaultCacheLocation","/tmp/");
Expand Down Expand Up @@ -605,7 +605,7 @@ public static String getCacheDir(String cachename,boolean persistent)
//NOTE: use above statics to save some time when running tests ...

String cmd = "";
if ( false == isIbmJava8() && cachename.indexOf("groupaccess") != -1 ) {
if ( false == isDefaultDirTmp() && cachename.indexOf("groupaccess") != -1 ) {
if (persistent==true)
{
cmd = getCommand("getCacheFileNameGroupAccess",cachename);
Expand Down Expand Up @@ -1528,9 +1528,9 @@ public static String[] getLastCommandStderr() {
return RunCommand.lastCommandStderrLines;
}

public static boolean isIbmJava8() {
public static boolean isDefaultDirTmp() {
// ibm 11+ has the same -DOPENJ9_BUILD as openj9
return System.getProperty("java.vm.vendor").toLowerCase().contains("ibm") && System.getProperty("java.specification.version").contains("1.8");
return System.getProperty("java.vm.vendor").toLowerCase().contains("ibm") && System.getProperty("java.specification.version").contains("1.8") || isMVS();
}

public static String removeJavaSharedResourcesDir(String dir) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2010, 2020 IBM Corp. and others
* Copyright (c) 2010, 2021 IBM Corp. and others
*
* This program and the accompanying materials are made available under
* the terms of the Eclipse Public License 2.0 which accompanies this
Expand Down Expand Up @@ -40,7 +40,7 @@ public static void main(String[] args) {
}
String currentCacheDir = getCacheDir();

if ( null == currentCacheDir && false == isIbmJava8() ) {
if ( null == currentCacheDir && false == isDefaultDirTmp() ) {
// Persistent cachefile without groupaccess are generated under HOME directory
// Current directory is under /tmp. Move a file from HOME directory to /tmp may not succeed on some platforms.
return;
Expand Down

0 comments on commit 9bb046c

Please sign in to comment.