src/os/solaris/vm/attachListener_solaris.cpp
Print this page
rev 4897 : 7162400: Intermittent java.io.IOException: Bad file number during HotSpotVirtualMachine.executeCommand
Reviewed-by: duke
*** 574,583 ****
--- 574,605 ----
thread->check_and_wait_while_suspended();
return op;
}
+
+ // Performs initialization at vm startup
+ // For Solaris we remove any stale .java_pid file which could cause
+ // an attaching process to think we are ready to recieve a door_call
+ // before we are properly initialized
+
+ void AttachListener::vm_start() {
+ char fn[PATH_MAX+1];
+ struct stat64 st;
+ int ret;
+
+ snprintf(fn, sizeof(fn), "%s/.java_pid%d",
+ os::get_temp_directory(), os::current_process_id());
+ RESTARTABLE(::stat64(fn, &st), ret);
+ if (ret == 0) {
+ ret = ::unlink(fn);
+ if(ret == -1) {
+ debug_only(warning("failed to remove stale attach pid file at %s", fn));
+ }
+ }
+ }
+
int AttachListener::pd_init() {
JavaThread* thread = JavaThread::current();
ThreadBlockInVM tbivm(thread);
thread->set_suspend_equivalent();