<div dir="ltr"><div>*Host : Windows7, Guest : Windows7 **but I think O/S is not condition of this problem.</div><div><br></div><div>I had problem that 'CopyTo' command using VBoxManage.exe when copying large file. so I tried searching answer of it.</div><div>I found ticket #11329(<a href="https://www.virtualbox.org/ticket/11329">https://www.virtualbox.org/ticket/11329</a>). </div><div>This article says timeout is too short on 'GuestSessionImplTasks.cpp'.. but REAL problem is not here. <b>The problem is timeout in VBoxService.exe.</b></div><div><b>The Worker thread in VBoxService is given life time(timeout) when it starts. The timeout value is 30second. yes, It is too short.</b></div><div><br></div><div>I modify the code using new timeout value(20minute), it works.</div><div><br></div><div><b>So I think the timeout value should be variable value depend on job. AND I found weird code about checking timeout.</b></div><div>It looks like try to 'terminating process' + 'checking process terminated until 20minute' </div><div><br></div><div>4.2 \src\VBox\Additions\common\VBoxService\VBoxService\VBoxServiceControlThread.cpp</div><div>VBoxServiceControlThreadProcLoop()</div><div><br></div><div>        /*</div><div>         * Check for timed out, killing the process.</div><div>         */</div><div>        uint32_t cMilliesLeft = RT_INDEFINITE_WAIT;</div><div>        if (cMsTimeout != RT_INDEFINITE_WAIT)</div><div>        {</div><div>            uint64_t u64Now = RTTimeMilliTS();</div><div>            uint64_t cMsElapsed = u64Now - MsStart;</div><div>            if (cMsElapsed >= cMsTimeout)</div><div>            {</div><div>                VBoxServiceVerbose(3, "[PID %u]: Timed out (%RU64ms elapsed > %RU32ms timeout, fProcessAlive=%RTbool), killing ...\n",</div><div>                                   pThread->uPID, cMsElapsed, cMsTimeout, fProcessAlive);</div><div><br></div><div>                fProcessTimedOut = true;</div><div>                if (    MsProcessKilled == UINT64_MAX</div><div>                    ||  u64Now - MsProcessKilled > 1000)</div><div>                {</div><div>                    if (u64Now - MsProcessKilled > 20*60*1000)</div><div>                        break; /* Give up after 20 mins. */</div><div>                    rc2 = RTProcTerminate(hProcess);<span class="" style="white-space:pre">            </span><< never reaching here because  MsProcessKilled is UINT64_MAX</div><div>                    VBoxServiceVerbose(3, "[PID %u]: Killing process resulted in rc=%Rrc\n",</div><div>                                       pThread->uPID, rc2);</div><div>                    MsProcessKilled = u64Now;</div><div>                    continue;</div><div>                }</div><div>                cMilliesLeft = 10 * 1000;</div><div>            }</div><div>            else</div><div>                cMilliesLeft = cMsTimeout - (uint32_t)cMsElapsed;</div><div>        }</div><div><span class="" style="white-space:pre">                </span></div><div>4.3 \src\VBox\Additions\common\VBoxService\VBoxServiceControlProcess.cpp</div><div>gstcntlProcessProcLoop()</div><div>        /*</div><div>         * Check for timed out, killing the process.</div><div>         */</div><div>        uint32_t cMilliesLeft = RT_INDEFINITE_WAIT;</div><div>        if (   pProcess->StartupInfo.uTimeLimitMS != RT_INDEFINITE_WAIT</div><div>            && pProcess->StartupInfo.uTimeLimitMS != 0)</div><div>        {</div><div>            uint64_t u64Now = RTTimeMilliTS();</div><div>            uint64_t cMsElapsed = u64Now - uMsStart;</div><div>            if (cMsElapsed >= pProcess->StartupInfo.uTimeLimitMS)</div><div>            {</div><div>                fProcessTimedOut = true;</div><div>                if (    MsProcessKilled == UINT64_MAX</div><div>                    ||  u64Now - MsProcessKilled > 1000)</div><div>                {</div><div>                    if (u64Now - MsProcessKilled > 20*60*1000)</div><div>                        break; /* Give up after 20 mins. */</div><div><br></div><div><span class="" style="white-space:pre">                             </span>    ## never reaching here because  MsProcessKilled is UINT64_MAX</div><div>                    VBoxServiceVerbose(3, "[PID %RU32]: Timed out (%RU64ms elapsed > %RU32ms timeout), killing ...\n",</div><div>                                       pProcess->uPID, cMsElapsed, pProcess->StartupInfo.uTimeLimitMS);</div><div><br></div><div>                    rc2 = RTProcTerminate(pProcess->hProcess);</div><div>                    VBoxServiceVerbose(3, "[PID %RU32]: Killing process resulted in rc=%Rrc\n",</div><div>                                       pProcess->uPID, rc2);</div><div>                    MsProcessKilled = u64Now;</div><div>                    continue;</div><div>                }</div><div>                cMilliesLeft = 10000;</div><div>            }</div><div>            else</div><div>                cMilliesLeft = pProcess->StartupInfo.uTimeLimitMS - (uint32_t)cMsElapsed;</div><div>        }</div><div>            </div><div>I hope this can help fixing the problem.</div><div><br></div><div>==</div><div><br></div><div><br></div></div>