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

Dong Lin c54e-gnucash at yahoo.com
Tue Jul 20 22:55:43 EDT 2021


On a freshly installed Ubuntu 21.04 VM with apt installed GNC 4.4. the apt
installed GNC runs fine with charts visible.

But locally built GNC (tip of the latest maint branch) has the same issue.
I tried switching the libs in build_dir to point to 
/usr/lib/x86_64-linux-gnu/gnucash,  but the local gnucash encountered an
undefined symbol gnc_run_report_with_error_handling and couldn't start.

apt removed the system gnucash, purged ~/.cache. reran the local gnc, same
problem, blank charts.
only the table is visible.

the build environment was prepared with apt-get build-dep gnucash as
instructed.


>
> Thank you John.  I can confirm that 4.x works with Ubuntu 21.04.
>
> As for release 3.11, the problem exists with the unstable version of 3.11
> (4064c58cd) only. The stable 3.11 (0fe8ba79e) release works just fine.
>
> | * | | 0fe9ba79e21d0545f4c1f9eb373a9450803a83c4 Release GnuCash 3.11
> * | | | | | | 4064c58cd03b7f7fb613d59eeee3c93569048adb Release GnuCash
> 3.11
>
> I guess issue lies in it's one of the 163 shared libs that GNC uses that
> came with Ubuntu 20.04.
>
>
>> 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.
>>
>
>
> _______________________________________________
> 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