[GNC] piecharts/linecharts turned blank in reports after upgrade

John Ralls jralls at ceridwen.us
Sun Jul 18 13:59:37 EDT 2021


It turns out that bisecting between 63232f and 8024f4 flat won't work, they're on different branches. 63232f is on the 3.x branch which is why it works. 2c637a is from 2019 where the master branch splits off from the maint branch (we had a pull request merge mishap at aa53c23 that temporarily collapsed them together, but there hadn't been any development on master at that point anyway). 2c637a is actually the first commit where the two branches start to diverge.

Since the failing 8024f4 is on master I looked at the changes leading up to that in a graphical history viewer. One particular change stands out, 2455071 where we start the conversion from jqplot to chartjs. That would be a good place to test.

****HOWEVER****
The problem may well be that there are remnants of the Ubuntu-provided GnuCash 3.8 that are interfering with the 4.x chartjs-based chart rendering, so before you do any more bisecting I suggest that you completely remove all GnuCash shared libraries, loadable modules, and Scheme caches from your system, then reinstall GnuCash 4.6 with apt. The shared libraries will be /usr/lib/libgnc* and you can get rid of the shared modules and system cached guile by `sudo rm -rf /usr/lib/gnucash/`. Remove ~/.cache/guile/ccache as well if it exists. That may fix the problem with no more troubleshooting required. If it doesn't `sudo apt-get remove gnucash` to have a clean system before doing any test builds. Guile is exceptionally stupid about what it loads and trying to build GnuCash when there's a package-manager version installed seldom comes out well.

If more bisecting is in order, try 2455071. If it works, try 598c37; that's the end of the chartjs upgrades. If that works then check 8024f4 again to make sure that that still fails, then `git bisect --first-parent start 8024f4 598c37` to find the problem commit (which may well be a merge).

Regards,
John Ralls


> On Jul 17, 2021, at 8:01 PM, Dong Lin <c54e-gnucash at yahoo.com> wrote:
> 
> 
> I see two 3.11 release commits in maint.
> 
> 3.11-4064c58cd bad
> 3.11-0fe9ba79e good
> 
> bisecting in this range pointed to 2c637a971.
> 
> bisecting in 63232f388..8024f44bc also singled out 2c637a971.
> 
> But it cannot be as it's just a version update.  Reverting it did not
> produce a good run.
> 
> 
>> 
>> That the problem seems to have arisen during the transition between 3.x
>> and 4.0 does make it a bit more complicated. There are 391 commits between
>> 63232f and 8024f4 including 57 merges from maint and 8 feature branches.
>> That makes knowing that the problem exists in the latter commit and not in
>> the former less helpful than it might be.
>> 
>> You can test your hypothesis that a merge caused the regression by testing
>> 3.11, the last release on the 3.x maint branch. If that fails you can
>> bisect between it and 63232f. Use `git bisect`, it's the quickest and
>> easiest way to find the commit that caused the problem.
>> 
>> If 3.11 is good then you can run bisect so that it always tests merge
>> commits and ignores the commits being merged with `git bisect
>> --first-commit start 8024f4 63232f`.
>> 
>> Regards,
>> John Ralls
>> 
>> 
>> 
>>> On Jul 17, 2021, at 7:46 AM, Dong Lin via gnucash-user
>>> <gnucash-user at gnucash.org> wrote:
>>> 
>>> 
>>> Did more searches.  the issue exists in 4.6, running gnc on Ubuntu
>>> 20.04.1
>>> LTS with standard gnome.
>>> 
>>> I've gone through the following commits in maint:
>>> 
>>> 4.6  2021 228954c40 bad
>>> 0425-2020 8024f44bc bad
>>> 0425-2020 63232f388 good
>>> 3.10 2020 7d39ccc9d good
>>> 3.6  2019 d42695e75 good
>>> 0615-2019 410ae9575 good
>>> 0601-2019 170651602 good
>>> 0601-2019 3a91eedb4 good
>>> 0531-2019 69ea174cd bad
>>> 0415-2019 0251d044b bad
>>> 3.5  2019 b7479e8fb bad
>>> 
>>> I couldn't go any older because ancient code cannot be compiled by my
>>> environment.
>>> 
>>> The merges really obscured the search. the order of the merged commits
>>> are
>>> not chronological. timestamps are time of commit, not time of merge.
>>> 
>>> It looks as if the bug was fixed at one point, but it was lost in a
>>> merge.
>>> 
>>> 
>>> 
>>>> Running gnc in Ubuntu 20.04 LTS.  Default gnc is 3.8.  I built the
>>>> gnc
>>>> trees based off of master at various commits for the bisect.
>>>> ; lsb_release -a
>>>> No LSB modules are available.
>>>> Distributor ID: Ubuntu
>>>> Description:Â Â Â  Ubuntu 20.04.1 LTS
>>>> Release:Â Â Â Â Â Â Â  20.04
>>>> Codename:Â Â Â Â Â Â  focal
>>>> 
>>>> 
>>>> ; grep WEBKIT ./common/config.h
>>>> /* Definitions for what WEBKIT version we're compiling against: */
>>>> #define WEBKIT2_4 1
>>>> /* #undef WEBKIT2_3 */
>>>> /* #undef WEBKIT1 */
>>>> 
>>>> 
>>>> I compared the preprocessor output for html/gnc-html-webkit2.c,  the
>>>> affected code block between  the working and non-working versions are
>>>> identical.  But some line numbers for other .h files are different.
>>>> So I
>>>> have assumed that it's not 8024f44bc,  but other 100+ commits that
>>>> came
>>>> with the tree merge.
>>>> 
>>>> the VNC server runs on Ubuntu (the same machine that the binary is
>>>> built
>>>> on). The VNC viewer is MacOS (TigherVNC). Tried another viewer running
>>>> on
>>>> Linux, same outcome.
>>>> 
>>>> There are many commits affecting barcharts in that range. The most
>>>> relevant one seems to be this:
>>>> 6b74f80bc Wed Dec 18 21:55:51 2019 +0800Â
>>>> [html-pie/scatter/bar/linechart] defer to html-chart renderer
>>>> 
>>>> But reverting it resulted in too many conflicts that I dont know how to
>>>> resolve.
>>>> Will try again later using the maint branch.
>>>> 
>>>> Thanks!
>>>> 
>>>>> 
>>>>> 
>>>>>> On Jul 11, 2021, at 10:36 PM, Dong Lin via gnucash-user
>>>>>> <gnucash-user at gnucash.org> wrote:
>>>>>> 
>>>>>> 
>>>>>> I am trying to upgrade from 3.8 to 4.6. But found that piecharts and
>>>>>> linecharts in reports have turned blank. The associated tables are
>>>>>> present
>>>>>> though.
>>>>>> 
>>>>>> Attempted to perform a binary search in master, and found the latest
>>>>>> working commit is 63232f388.
>>>>>> 
>>>>>> 
>>>>>> 8024f44bc Sat Apr 25 15:40:07 2020
>>>>>> -0700Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  Remove leftover
>>>>>> webkit2 conditional.
>>>>>> 63232f388 Sat Apr 25 14:40:57 2020
>>>>>> -0700Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  Merge Jean
>>>>>> Laroche's 'Fix-3-SX-Problems' into maint
>>>>>> 
>>>>>> 
>>>>>> Unfortunately 8024f44bc came from the maint branch and was merged
>>>>>> with
>>>>>> over a hundred other commits.  I am not sure how to narrow it down.
>>>>>> Reverting one of them resulted in lots of conflicts that I dont know
>>>>>> how
>>>>>> to resolve.
>>>>>> 
>>>>>> I figured the problem has to be related to my environment as no one
>>>>>> else
>>>>>> has brought up the issue. My virtual desktop is
>>>>>> driven by a VNC server (Ubuntu 20.04 LTS).  It's not directly
>>>>>> associated
>>>>>> with a hardware graphics card with a physical cable to the monitor.
>>>>> 
>>>>> We release off of the maint branch so you should do your bisect there.
>>>>> 
>>>>> This isn't likely to have anything to do with your VNC server, nor
>>>>> with
>>>>> whatever you're connecting to it. In what environment are you actually
>>>>> running GnuCash and what version of WebKit is it using?
>>>>> 
>>>>> Regards,
>>>>> John Ralls
>>>>> 
>>>> 
>>>> 
>>>> _______________________________________________
>>>> 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.



More information about the gnucash-user mailing list