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

John Ralls jralls at ceridwen.us
Sun Jul 18 23:30:12 EDT 2021


Dong Lin,

You've already demonstrated that the problem doesn't happen on 3.11 so there's no point going backwards in 3.x.
According to https://repology.org/project/gnucash/versions Ubuntu 21.04 provides GnuCash 4.5. I suggest that you clean up your system and install GnuCash 4.4 from apt. If it has trouble displaying charts then raise a bug on Ubuntu and let their packager figure out what's going on.

Regards,
John Ralls

> On Jul 18, 2021, at 6:24 PM, Dong Lin <c54e-gnucash at yahoo.com> wrote:
> 
> 
> Thanks for the instructions John. I tried it on a Ubuntu 20.04 system with
> no GNC installed.  The problem still exists in 4.x.  It seems the 3.x
> stable branch works.  The issue happens in the unstable branch only.
> 
> I also tried running 4.x on a Mac, I can see the plot. Not sure if the
> issue is Linux only or Ubuntu only.
> 
> unstable 2455071 bad
> stable   3.6-d42695e75  good
> unstable 3.5-b7479e8fb  bad
> 
> I cannot build 3.4 or anything older.  The fix for
> G_TYPE_INSTANCE_GET_PRIVATE does not apply cleanly on older commits.
> Compile still fails after resolving all conflicts.
> 
> So it seems a very old bug that hasn't been fixed in the unstable branch.
> I believe running 4.x or any 3.x unstable build on standard issue Ubuntu
> 20.04 should easily reproduce.
> 
> 
>> 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