[sword-devel] SWORD trunk / Regression when updating remote sources

Tobias Klein contact at tklein.info
Mon Oct 12 15:20:43 EDT 2020


I'll see whether I can collect a stack trace. It may take some time 
until I have it.

The multi-threaded "remote source refreshing" worked without issues 
until recently.

Here is the code of the function that does the actual work in a thread.
See 
https://github.com/tobias-klein/node-sword-interface/blob/787160ccb4b3bab2a762d22f74031c7237edc803/src/sword_backend/repository_interface.cpp#L105.

intRepositoryInterface::refreshIndividualRemoteSource(stringremoteSourceName, 
std::function<void(unsignedintprogress)>*progressCallback)
{
//cout << "Refreshing source " << remoteSourceName << endl << flush;
InstallSource* source= this->getRemoteSource(remoteSourceName);
intresult= this->_installMgr->refreshRemoteSource(source);
if(result!= 0) {
cerr<<"Failed to refresh source "<<remoteSourceName<<endl<<flush;
}
remoteSourceUpdateMutex.lock();
this->_remoteSourceUpdateCount++;
unsignedinttotalPercent= 
(unsignedint)calculateIntPercentage<double>(this->_remoteSourceUpdateCount,
this->_remoteSourceCount);
if(progressCallback!= 0) {
(*progressCallback)(totalPercent);
}
remoteSourceUpdateMutex.unlock();
returnresult;
}

Best regards,
Tobias

On 10/12/20 9:01 PM, Troy A. Griffitts wrote:
> Any luck getting a stack trace on crash?
>
> Regarding the "multitheaded mode", I'd have to get a bit more 
> information as to exactly how you are sharing SWORD objects across 
> your threads. Generally, as a rule, you shouldn't. We recommend a 
> separate instance of SWMgr per thread and that probably goes for 
> InstallMgr, as well.
>
> Troy
>
> On October 12, 2020 8:29:31 PM GMT+02:00, Tobias Klein 
> <contact at tklein.info> wrote:
>
>     Hi Troy,
>
>     I'm using curl on all three platforms.
>
>     Regarding the timeout configuration I have not changed anything
>     yet, to make this configurable in Ezra Project is still on my todo
>     list.
>
>     I just checked on Linux.
>     With the old version (May 18th 2020) no hanging or crash in 10 out
>     of 10 times.
>     WIth the new version (latest trunk / SWORD 1.9 RC3) I get 1 x
>     crash, 2 x hanging, 7 x working.
>
>     I'm running the InstallMgr::refreshRemoteSource "in a
>     multi-threaded mode".
>
>     Best regards,
>     Tobias
>
>     On 10/12/20 6:59 PM, Troy A. Griffitts wrote:
>>     Hi Tobias,
>>
>>     What transport library are you building with? ftplib or curl?
>>
>>     Have you changed the value of our new timeout from the default, I
>>     believe we decided on, 10 seconds?
>>
>>     Troy
>>
>>     On October 12, 2020 6:46:54 PM GMT+02:00, Tobias Klein
>>     <contact at tklein.info> wrote:
>>
>>         Hi Troy,
>>
>>         In my latest Ezra Project builds using SWORD trunk I’ve been noticing random „hangs“ and crashes related to "updating remote sources“. I suppose it must be around InstallMgr::refreshRemoteSource.
>>
>>         This was still rock solid when using SWORD trunk from May 18th 2020, but not so any more with the recent SWORD trunk.
>>
>>         Unfortunately I cannot pinpoint this more specifically. I just wanted to first share this observation, because it’s worrying me.
>>
>>         I’ve been noticing this regression both on Windows and macOS. Need to check later whether this also happens on Linux, cannot recall it right now.
>>
>>         Best regards,
>>         Tobias
>>         ------------------------------------------------------------------------
>>         sword-devel mailing list:sword-devel at crosswire.org
>>         http://crosswire.org/mailman/listinfo/sword-devel
>>         Instructions to unsubscribe/change your settings at above page
>>
>>
>>     -- 
>>     Sent from my Android device with K-9 Mail. Please excuse my brevity. 
>
>
> -- 
> Sent from my Android device with K-9 Mail. Please excuse my brevity. 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://crosswire.org/pipermail/sword-devel/attachments/20201012/b6c63cef/attachment-0001.html>


More information about the sword-devel mailing list