[GNC] update quotes hanging

Jon Schewe jpschewe at mtu.net
Mon Dec 16 07:14:15 EST 2019


I have built myself a solution for this. I'm not certain why asking 
gnucash to add the price quotes hangs for me. However I found that if I 
used Python to call the perl script for each individual stock and then 
the GNUCash Python API to write the information it all works.

The script "get_quotes.py" in the repository 
https://github.com/jpschewe/gnucash-stock-portfolio implements this. It 
looks for stocks and mutual funds that have non-zero balances and have 
online quotes enabled. It respects the alphavantage API rate limit and 
has an automatic backoff.

Note that this is a fork of a repository from Henning Jacobs. I found 
that repository to have a good start on this and a nice patch for 
ensuing that GncPrice objects are properly created.

Jon Schewe

On 9/24/19 5:43 AM, Jon Schewe wrote:
> I took my gnucash file and stripped out everything except the price 
> database and the commodities and found the same behavior. Since this 
> doesn't have any personal information, other than which commodities 
> I'm watching, I'm comfortable sharing it. Perhaps someone else has a 
> configuration that works and I can replicate it.
>
> I'm running "gnucash --add-price-quotes accounts.gnucash".
>
>
> On 9/24/19 5:09 AM, Jon Schewe wrote:
>> According to gnc-fq-check I have 1.47. The 5 quotes/minute 
>> restriction would explain why when I ran the gnc-fq-dump commands 
>> manually I didn't get quotes for a lot of the commodities. However it 
>> doesn't explain the process hanging.
>>
>> I left it running all night last night in strace and it never finished.
>> It was sitting here all night:
>> 8835  write(2, "Use of uninitialized value $q[1]"..., 116) = 116
>> 8835  write(2, "Use of uninitialized value $q[2]"..., 116) = 116
>> 8835  write(2, "Use of uninitialized value $q[1]"..., 116 <unfinished 
>> ...>
>> 8826  <... poll resumed> )              = 0 (Timeout)
>> 8826  poll([{fd=11, events=POLLIN}], 1, -1 <unfinished ...>
>>
>>
>> On 9/23/19 10:25 PM, John Ralls wrote:
>>> Have you updated Finance::Quote to 1.49? It throttles the 
>>> Alphavantage requests to comply with their 5 quotes/minute restriction.
>>>
>>> You might also consider using yahoo_json for as many non-currency 
>>> commodities as you can. Yahoo! still supports the json API and 
>>> doesn't require throttling.
>>>
>>> Regards,
>>> John Ralls
>>>
>>>> On Sep 23, 2019, at 6:59 PM, Jon Schewe <jpschewe at mtu.net> wrote:
>>>>
>>>> I just tried 3.7.0 from ppa:sicklylife/gnucash and the behavior 
>>>> hasn't changed.
>>>>
>>>> On 9/23/19 2:25 PM, Adrien Monteleone wrote:
>>>>> There are no updates to the 2.6 series any longer. 2.6.21 is the 
>>>>> last one and nearly 18 months old. There have been eight 3.x 
>>>>> releases so far.
>>>>>
>>>>> You can build from source, or there are debs floating around on 
>>>>> the list for 3.7 that you should be able to install on 18.04.
>>>>>
>>>>>
>>>>> Regards,
>>>>> Adrien
>>>>>
>>>>>> On Sep 23, 2019 w39d266, at 5:58 AM, Jon Schewe 
>>>>>> <jpschewe at mtu.net> wrote:
>>>>>>
>>>>>> I'm using GnuCash 2.6.19 that ships with Ubuntu 18.04. I'm 
>>>>>> finding that the update price quotes process is hanging, both 
>>>>>> from within GnuCash and from the command line.
>>>>>>
>>>>>> I've created a CSV file of all of my commodities and tested them 
>>>>>> individual using gnc-fq-dump and they all return fairly quickly. 
>>>>>> Not all of them have valid prices, but none hang. Below is the 
>>>>>> script that I have used with cron in the past to update my quotes 
>>>>>> at regular intervals.
>>>>>>
>>>>>> When the process is running I can strace it and I find that the 
>>>>>> perl process is usually in a write call writing "use of 
>>>>>> uninitialized value".
>>>>>>
>>>>>> Does anyone have suggestions to determine why updating the quotes 
>>>>>> is hanging?
>>>>>>
>>>>>> Is this a problem with this version of gnucash? I would prefer to 
>>>>>> stick with the version of gnucash that comes with my distribution 
>>>>>> so that I get automatic updates, however I can build a custom 
>>>>>> version if that is what is needed.
>>>>>>
>>>>>>
>>>>>> #!/bin/sh
>>>>>>
>>>>>> ALPHAVANTAGE_API_KEY=XXXXXXX
>>>>>> export ALPHAVANTAGE_API_KEY
>>>>>> env $(dbus-launch) sh -c 'trap "kill $DBUS_SESSION_BUS_PID" EXIT; 
>>>>>> /usr/bin/gnucash --add-price-quotes 
>>>>>> ${HOME}/Documents/banking/gnucash/accounts.gnucash' 2>&1 | grep 
>>>>>> -v "Found Finance::Quote"
>>>>>>
>>>>>> -- 
>>>>>> http://mtu.net/~jpschewe
>>>>> _______________________________________________
>>>>> gnucash-user mailing list
>>>>> gnucash-user at gnucash.org
>>>>> To update your subscription preferences or to unsubscribe:
>>>>> https://lists.gnucash.org/mailman/listinfo/gnucash-user
>>>>> If you are using Nabble or Gmane, please see 
>>>>> https://wiki.gnucash.org/wiki/Mailing_Lists for more information.
>>>>> -----
>>>>> Please remember to CC this list on all your replies.
>>>>> You can do this by using Reply-To-List or Reply-All.
>>>> -- 
>>>> http://mtu.net/~jpschewe
>>>>
>>>> _______________________________________________
>>>> gnucash-user mailing list
>>>> gnucash-user at gnucash.org
>>>> To update your subscription preferences or to unsubscribe:
>>>> https://lists.gnucash.org/mailman/listinfo/gnucash-user
>>>> If you are using Nabble or Gmane, please see 
>>>> https://wiki.gnucash.org/wiki/Mailing_Lists for more information.
>>>> -----
>>>> Please remember to CC this list on all your replies.
>>>> You can do this by using Reply-To-List or Reply-All.
>>
>
>
> _______________________________________________
> gnucash-user mailing list
> gnucash-user at gnucash.org
> To update your subscription preferences or to unsubscribe:
> https://lists.gnucash.org/mailman/listinfo/gnucash-user
> If you are using Nabble or Gmane, please see https://wiki.gnucash.org/wiki/Mailing_Lists for more information.
> -----
> Please remember to CC this list on all your replies.
> You can do this by using Reply-To-List or Reply-All.

-- 
http://mtu.net/~jpschewe



More information about the gnucash-user mailing list