Jump to content


Issue Information

  • #000154

  • Issue

  • 0 - None Assigned

  • Not a Bug

  • 4.0.1205

  • -

Issue Confirmations

  • Yes (0)No (0)
Photo

SmartFTP Hangs when Running Scheduled Transfer

Posted by JBC on 16 September 2011 - 04:28 PM

Hello,

I am having a reoccurring issue with SmartFTP Client version 4.0.1204 failing. This is my current setup:
1. Scheduled Task to run SmartFTP every 30 minutes.
2. Scheduled Transfers to start on Instantiation.
3. Send Email on job failure
4. Retry Limit 3 Attempts
5. 'On Queue Complete' option to 'Close Application'

Occasionally the SmartFTP client will hang and fail to close. There is no Error email sent to alert us that an issue has happened but there are several SmartFTP.exe processes running when viewing the task scheduler. There is no way they should be open as the retry limit should have been reached. Some of them have been running for hours.

Thanks for your assistance,
JBC

Try it with the latest version. Then post the system information and very detailed instructions on how to reproduce the problem. If we cannot reproduce the problem, we cannot fix it.

Ok, I am installing the new client first and will see if that helps.

OK, I reinstalled SmartFTP and let it run over the weekend. I returned on Monday with 3 instances of the program in task manager.

Here is the system information from SmartFTP:

+- System -----------------------------
Microsoft Windows 2008 R2 Server Standard Edition (full installation)
Service Pack 1 (Build 7601)

CPU Speed : 2666 MHz
Total Memory : 4095 MB
Free Memory : 1054 MB

+- SmartFTP ---------------------------
Version : 4.0.1215.0
Time Stamp : 2011-09-10 20:52:32
Platform : x64
Id : 400139396
Maintenance : 2012-07-06
Days in use : 19

+- Language ---------------------------
en-US

+- Internet Explorer ------------------
Version : 9.0.8112.16421



Here is the Transfer Queue log from one of the stuck processes:

20110918 14:40:04.208 Thread(4228) Log file opened. LogLevel=7
20110918 14:40:05.252 Thread(4228) CTransferQueue::Init()
20110918 14:40:05.290 Thread(4228) CScheduler::StartThread() Begin

20110918 14:40:05.290 Thread(4228) CScheduler::StartThread() End

20110918 14:40:06.001 Thread(4228) CTransferQueue::Load(C:\Users\FTPAgent\AppData\Roaming\SmartFTP\Client 2.0\Transfer Queue.xml)
20110918 14:40:06.053 Thread(4228) CTransferQueue::Start()
20110918 14:40:06.053 Thread(1092) CTransferQueue::OnCommandStart()

And here is the SmartFTP log:
20110918 14:40:03.413 Thread(4228) Log file opened. LogLevel=7
20110918 14:40:03.413 Thread(4228) Microsoft Windows 6.1.7601 Service Pack 1
20110918 14:40:03.413 Thread(4228) SmartFTP 4.0.1215.0 (2011-09-10 20:52:32)
20110918 14:40:03.413 Thread(4228) Username: FTPAgent
20110918 14:40:03.416 Thread(4228) Winsock 2.2 initialized
20110918 14:40:03.416 Thread(4228) GlobalSettings::Fix()
20110918 14:40:03.416 Thread(4228) Init sfFTPLib::Global
20110918 14:40:03.814 Thread(4228) Init sfTransferQueue::TransferQueueGlobal
20110918 14:40:04.265 Thread(4228) CLicenseKey::LoadFile(C:\Users\FTPAgent\AppData\Roaming\SmartFTP\Client 2.0\SmartFTP.key)
20110918 14:40:04.265 Thread(4228) CLicenseKey::LoadXML()
20110918 14:40:04.278 Thread(4228) CLicenseKey::Verify()
20110918 14:40:04.278 Thread(4228) CLicenseKey::Verify() Verified.
20110918 14:40:04.278 Thread(4228) Init XTP.
20110918 14:40:04.496 Thread(4228) Init QuickFolders.
20110918 14:40:04.500 Thread(4228) Init FavoritesManager.
20110918 14:40:04.869 Thread(4228) Init sfFavoritesShellExtension::Global
20110918 14:40:04.941 Thread(4228) Init sfFavoritesUI::Global
20110918 14:40:05.243 Thread(4228) Init TransferQueueManager.
20110918 14:40:05.290 Thread(4228) Init TransferStatistics.
20110918 14:40:05.290 Thread(4228) Init SchedulerManager.
20110918 14:40:05.290 Thread(4228) CSchedulerManager::Load() File="C:\Users\FTPAgent\AppData\Roaming\SmartFTP\Client 2.0\Scheduler.xml"

20110918 14:40:06.210 Thread(4228) CMainFrame::OnCreate() hwnd=0000000003560446
20110918 14:40:06.710 Thread(4228) CMainFrame::InitClipboardViewer() SetClipboardViewer() returned 0000000000000000
As for exact steps to reproduce, it's hard to say as the program stalls intermittently. It's run as a task every half hour so out of the 100 or so times it was started this weekend, it's only gotten stuck 3 times. Here is the Exact setup:
  • Task Scheduler kicks off SmartFTP
  • Task is run as FTPAgent, a non admin service account. SmartFTP was installed and configured under this account.
  • SmartFTP has 4 scheduled tasks that launch on instantiation. 2 copy jobs for a folder, and 2 copy jobs for a file, all from different servers.
  • Retry limit set to 3 attempts, 60sec time out, 30sec delay.
  • Set to email logfile on failure to a support email address with log attached. The email has been tested and will send properly after an error occurs. Unfortunately, no email is sent when SmartFTP gets stuck.
  • SmartFTP set to close on queue completion.
Could this issue be an error with our setup? Or maybe some kind of connection problem?

Thanks,
JBC

Just noticed that there is also no Transfer Queue logs generated at all at the time the error happens.

Looking at a good sfTransferQueue log, it would appear the process gets suck right before any workers are started:

Good:
20110918 17:40:00.508 Thread(4640) Log file opened. LogLevel=7
20110918 17:40:00.614 Thread(4640) CTransferQueue::Init()
20110918 17:40:00.625 Thread(4640) CScheduler::StartThread() Begin
20110918 17:40:00.629 Thread(4640) CScheduler::StartThread() End
20110918 17:40:00.649 Thread(4640) CTransferQueue::Load(C:\Users\FTPAgent\AppData\Roaming\SmartFTP\Client 2.0\Transfer Queue.xml)
20110918 17:40:00.650 Thread(4640) CTransferQueue::Start()
20110918 17:40:00.650 Thread(3980) CTransferQueue::OnCommandStart()
20110918 17:40:01.628 Thread(3980) CTransferQueueWorker::Start()
20110918 17:40:01.628 Thread(5264) CTransferQueueWorker::Execute()
20110918 17:40:02.631 Thread(3980) CTransferQueueWorker::Start()
20110918 17:40:02.631 Thread(5300) CTransferQueueWorker::Execute()
20110918 17:40:26.618 Thread(3980) CTransferQueueWorker::Stop()
20110918 17:40:26.618 Thread(3980) CTransferQueueWorker::Abort()
20110918 17:40:27.621 Thread(3980) CTransferQueueWorker::Stop()
20110918 17:40:27.621 Thread(3980) CTransferQueueWorker::Abort()
20110918 17:40:37.892 Thread(3980) CTransferQueue::OnCommandStop()
20110918 17:40:38.410 Thread(4640) CScheduler::StopThread() Begin
20110918 17:40:38.410 Thread(4640) CScheduler::StopThread() End
20110918 17:40:38.521 Thread(4640) Log file closed.
Bad:
20110918 14:40:04.208 Thread(4228) Log file opened. LogLevel=7
20110918 14:40:05.252 Thread(4228) CTransferQueue::Init()
20110918 14:40:05.290 Thread(4228) CScheduler::StartThread() Begin
20110918 14:40:05.290 Thread(4228) CScheduler::StartThread() End
20110918 14:40:06.001 Thread(4228) CTransferQueue::Load(C:\Users\FTPAgent\AppData\Roaming\SmartFTP\Client 2.0\Transfer Queue.xml)
20110918 14:40:06.053 Thread(4228) CTransferQueue::Start()
20110918 14:40:06.053 Thread(1092) CTransferQueue::OnCommandStart()

Try to change the queue on complete setting from "close on complete" to "Idle".

Ok, I'll try setting it to idle and see what the logs say. Won't this just keep multiple instances of SmartFTP running?

Ideally we would still need it to close as the scheduled task launches SmartFTP with a wrapper batch script that kicks off some data processing once SmartFTP closes.

Only start SmartFTP once, when the computer starts. You can use transfer queue item scripts for post processing.

Initially that is how our setup was run. Unfortunately we found that we couldn't get it to process properly because of the way TransferQueueOperation_OnEnd() is triggered. As soon as a folder copy job added all items from the remote folder into the transfer queue that event is triggered. Thus, it would trigger the processing script before the items were even downloaded. It worked great for downloads of single items, but not at all for the two folder copy tasks as listed above. This is why we wanted to use the 'Close on Complete' option to close SmartFTP.

I would try it first without the "Close on complete" setting. The processing script should be triggered multiple times (each time with a different state).

Sorry I'm not sure I understand. Could you explain a little bit how it will properly call the script?

I know you specify a script to launch in the scheduled task item settings, but your documentation says it needs to follow one of 3 available events:

TransferQueueOperation:
TransferQueueOperation_OnBegin()
TransferQueueOperation_OnRun()
TransferQueueOperation_OnEnd()
>Point to Post Processing script here // or // have post processing operations here.

The operation is considered 'Complete' and _OnEnd() is called when the items to be downloaded have been added to the queue. _OnEnd() is fired before the items have finished downloading.

Would this not be the case even if SmartFTP was set to 'idle' instead of 'close'?

Hello. Support with scripting is not covered under the normal support contract. If you need support with that please contact the sales department.

mb  
changed status to: Not a Bug





0 user(s) are reading this issue

0 members, 0 guests, 0 anonymous users