Hi, thanks for pointing out and supplying a fix -- we're going to reproduce the issue internally and providing a fix for the next upcoming maintenance release.
Regards, Andreas Kind regards / Mit freundlichen Grüßen ****************************************************************** Andreas Löffler | VirtualBox Engineering Senior Software Engineer | Oracle Virtualization ORACLE Deutschland B.V. & Co. KG Schiffbauergasse 14 D-14467 Potsdam, Germany Hauptverwaltung: Riesstr. 25, D-80992 München Registergericht: Amtsgericht München, HRA 95603 Geschäftsführer: Jürgen Kunz Komplementärin: ORACLE Deutschland Verwaltung B.V. Hertogswetering 163/167, 3543 AS Utrecht, Niederlande Handelsregister der Handelskammer Midden-Niederlande, Nr. 30143697 Geschäftsführer: Alexander van der Ven, Astrid Kepper, Val Maher Green Oracle <http://www.oracle.com/commitment> Oracle is committed to developing practices and products that help protect the environment On 17.12.2014 08:44, Woof wrote: > *Host : Windows7, Guest : Windows7 **but I think O/S is not > condition of this problem. > > I had problem that 'CopyTo' command using VBoxManage.exe when > copying large file. so I tried searching answer of it. I found > ticket #11329(https://www.virtualbox.org/ticket/11329). This > article says timeout is too short on 'GuestSessionImplTasks.cpp'.. > but REAL problem is not here. *The problem is timeout in > VBoxService.exe.* *The Worker thread in VBoxService is given life > time(timeout) when it starts. The timeout value is 30second. yes, > It is too short.* > > I modify the code using new timeout value(20minute), it works. > > *So I think the timeout value should be variable value depend on > job. AND I found weird code about checking timeout.* It looks like > try to 'terminating process' + 'checking process terminated until > 20minute' > > 4.2 > \src\VBox\Additions\common\VBoxService\VBoxService\VBoxServiceControlThread.cpp > > VBoxServiceControlThreadProcLoop() > > /* * Check for timed out, killing the process. */ uint32_t > cMilliesLeft = RT_INDEFINITE_WAIT; if (cMsTimeout != > RT_INDEFINITE_WAIT) { uint64_t u64Now = RTTimeMilliTS(); uint64_t > cMsElapsed = u64Now - MsStart; if (cMsElapsed >= cMsTimeout) { > VBoxServiceVerbose(3, "[PID %u]: Timed out (%RU64ms elapsed > > %RU32ms timeout, fProcessAlive=%RTbool), killing ...\n", > pThread->uPID, cMsElapsed, cMsTimeout, fProcessAlive); > > fProcessTimedOut = true; if ( MsProcessKilled == UINT64_MAX || > u64Now - MsProcessKilled > 1000) { if (u64Now - MsProcessKilled > > 20*60*1000) break; /* Give up after 20 mins. */ rc2 = > RTProcTerminate(hProcess);<< never reaching here because > MsProcessKilled is UINT64_MAX VBoxServiceVerbose(3, "[PID %u]: > Killing process resulted in rc=%Rrc\n", pThread->uPID, rc2); > MsProcessKilled = u64Now; continue; } cMilliesLeft = 10 * 1000; } > else cMilliesLeft = cMsTimeout - (uint32_t)cMsElapsed; } 4.3 > \src\VBox\Additions\common\VBoxService\VBoxServiceControlProcess.cpp > > gstcntlProcessProcLoop() > /* * Check for timed out, killing the process. */ uint32_t > cMilliesLeft = RT_INDEFINITE_WAIT; if ( > pProcess->StartupInfo.uTimeLimitMS != RT_INDEFINITE_WAIT && > pProcess->StartupInfo.uTimeLimitMS != 0) { uint64_t u64Now = > RTTimeMilliTS(); uint64_t cMsElapsed = u64Now - uMsStart; if > (cMsElapsed >= pProcess->StartupInfo.uTimeLimitMS) { > fProcessTimedOut = true; if ( MsProcessKilled == UINT64_MAX || > u64Now - MsProcessKilled > 1000) { if (u64Now - MsProcessKilled > > 20*60*1000) break; /* Give up after 20 mins. */ > > ## never reaching here because MsProcessKilled is UINT64_MAX > VBoxServiceVerbose(3, "[PID %RU32]: Timed out (%RU64ms elapsed > > %RU32ms timeout), killing ...\n", pProcess->uPID, cMsElapsed, > pProcess->StartupInfo.uTimeLimitMS); > > rc2 = RTProcTerminate(pProcess->hProcess); VBoxServiceVerbose(3, > "[PID %RU32]: Killing process resulted in rc=%Rrc\n", > pProcess->uPID, rc2); MsProcessKilled = u64Now; continue; } > cMilliesLeft = 10000; } else cMilliesLeft = > pProcess->StartupInfo.uTimeLimitMS - (uint32_t)cMsElapsed; } > > I hope this can help fixing the problem. > > == > > > > > _______________________________________________ vbox-dev mailing > list [email protected] > https://www.virtualbox.org/mailman/listinfo/vbox-dev > _______________________________________________ vbox-dev mailing list [email protected] https://www.virtualbox.org/mailman/listinfo/vbox-dev
