2021-09-28 GnuCash IRC logs

00:00:00 *** Jeanl has joined #gnucash
00:54:24 *** PeterScholtens[m] has joined #gnucash
00:57:14 *** jralls_laptop has joined #gnucash
00:57:55 *** ChanServ sets mode: +o jralls_laptop
01:05:23 <jralls_laptop> @tell gjanssens The problem is that glib-compile-schemas is getting run in the install directory before the import library org.gnucash.GnuCash schema files are installed. I don't understand how it's managing to get org.gnucash.dialogs.import.hbci anyway, but it seems to be. Note also that Dave Cousens is reporting the same problem in gnucash-devel.
01:05:23 <gncbot> jralls_laptop: The operation succeeded.
01:05:29 *** jralls_laptop has quit IRC
01:08:45 *** Mechtilde has joined #gnucash
01:22:41 *** fell has quit IRC
01:23:59 *** fell has joined #gnucash
01:24:00 *** ChanServ sets mode: +o fell
01:25:04 *** frakturfreak1 has quit IRC
01:27:35 *** sbluhm has joined #gnucash
01:39:48 *** frakturfreak1 has joined #gnucash
01:45:21 *** Mechtilde has quit IRC
02:45:37 *** Julianold[m] has joined #gnucash
02:50:51 *** Doru has joined #gnucash
02:58:38 *** gjanssens has joined #gnucash
02:58:39 *** ChanServ sets mode: +o gjanssens
02:58:45 <gjanssens> .
02:58:45 <gncbot> gjanssens: Sent 4 hours and 1 minute ago: <jralls> hptina suggested that there might be an issue with make vs. ninja install after they successfully ran glib-compile-schemas --strict /usr/local/share/glib-2.0/schemas. I tested with make and indeed gschemas.compiled containes only the old paths.
02:58:46 <gncbot> gjanssens: Sent 1 hour and 53 minutes ago: <jralls_laptop> The problem is that glib-compile-schemas is getting run in the install directory before the import library org.gnucash.GnuCash schema files are installed. I don't understand how it's managing to get org.gnucash.dialogs.import.hbci anyway, but it seems to be. Note also that Dave Cousens is reporting the same problem in gnucash-devel.
03:01:56 <gjanssens> @tell jralls It dawned on me this morning as well we have been chasing the wrong tail. I think the real issue is I have changed the build order so gnucash/gschemas is processed before import. During build this doesn't matter as we're proper dependency tracking in place. That's not the case for the install target.
03:01:56 <gncbot> gjanssens: The operation succeeded.
03:06:29 <gjanssens> @tell jralls I'll work on it some more today, I have a hypothesis to test for a proper fix.
03:06:29 <gncbot> gjanssens: The operation succeeded.
03:16:49 *** User has joined #gnucash
03:22:53 *** User has quit IRC
04:10:00 *** Jeanl has quit IRC
04:15:28 *** Hamaryns has joined #gnucash
04:15:28 *** ChanServ sets mode: +v Hamaryns
04:17:54 *** hptina has joined #gnucash
04:46:28 *** Trygve[m]1 has joined #gnucash
04:48:11 *** Hamaryns has quit IRC
04:49:56 *** Jeanl has joined #gnucash
04:52:56 *** Jeanl has quit IRC
05:06:43 *** jralls_afk has joined #gnucash
05:06:43 *** ChanServ sets mode: +o jralls_afk
05:07:26 *** jralls has quit IRC
05:20:41 *** hptina has quit IRC
05:21:04 *** hptina has joined #gnucash
05:24:32 *** lmat has joined #gnucash
05:25:04 *** hptina has quit IRC
05:25:23 *** hptina has joined #gnucash
05:25:23 *** ChanServ sets mode: +v hptina
05:33:25 *** Hamaryns has joined #gnucash
05:33:25 *** ChanServ sets mode: +v Hamaryns
06:02:47 *** Jeanl has joined #gnucash
06:05:47 *** Jeanl has quit IRC
06:09:34 <gjanssens> @tell jralls I can confirm the issue is indeed glib-compile-gschema runs before all schema files are installed and it effectively happens because I changed the build order to accommodate for creating migratable_prefs.xml.
06:09:34 <gncbot> gjanssens: The operation succeeded.
06:11:19 <gjanssens> @tell jralls I have reset the proper build order and rewrote the rules to generate migratable-prefs.xml in a way that works with this reversed build order.
06:11:19 <gncbot> gjanssens: The operation succeeded.
06:11:26 *** tomk_dk has joined #gnucash
06:11:32 *** chris_ has joined #gnucash
06:11:33 *** gncbot sets mode: +o chris_
06:12:05 <gjanssens> @tell jralls In my testing this now works both for a ninja or make based build, starting from empty build and install directories in each case.
06:12:05 <gncbot> gjanssens: The operation succeeded.
06:13:12 *** chris has quit IRC
06:14:35 <gjanssens> @tell jrals Note to reproduce the crash during migration, one has to make sure the migration runs each time by unsetting the prefs-version key under GSettings path /org/gnucash/GnuCash/general. On linux that can be done with dconf-editor (after setting the proper XDG_DATA_DIRS to include the relevant gnucash build or installation directory).
06:14:35 <gncbot> gjanssens: The operation succeeded.
06:37:36 *** Jeanl has joined #gnucash
06:38:14 *** User has joined #gnucash
06:40:36 *** Jeanl has quit IRC
06:43:30 *** o01eg has joined #gnucash
06:45:02 *** Hamaryns has quit IRC
06:53:18 *** chf has quit IRC
07:00:33 *** mikee has quit IRC
07:00:53 *** mikee has joined #gnucash
07:25:20 *** miklcct has quit IRC
07:25:23 *** miklcct has joined #gnucash
07:25:23 *** ChanServ sets mode: +v miklcct
07:25:45 *** hptina has quit IRC
07:25:53 *** miklcct has quit IRC
07:27:09 *** miklcct has joined #gnucash
07:27:09 *** ChanServ sets mode: +v miklcct
07:28:00 <warlord> .
07:50:06 *** sbluhm has quit IRC
08:24:39 *** sbluhm has joined #gnucash
08:42:51 *** hptina has joined #gnucash
08:42:53 *** ChanServ sets mode: +v hptina
08:43:02 *** Jimraehl1 has joined #gnucash
09:08:38 *** hptina has quit IRC
09:10:02 *** hptina has joined #gnucash
09:10:02 *** ChanServ sets mode: +v hptina
09:11:03 <fell> gjanssens: typo in 12:14
09:20:28 <gjanssens> Right
09:21:08 <gjanssens> @tell jralls the last message was told to jrals (with a single 'l' by mistake) be sure to read that one as well :)
09:21:08 <gncbot> gjanssens: The operation succeeded.
09:33:41 *** sbluhm has quit IRC
09:40:30 *** jralls_laptop has joined #gnucash
09:41:29 *** ChanServ sets mode: +o jralls_laptop
09:44:59 <jralls_laptop> gjanssens, Good Work!
09:51:02 <chris_> gjanssens: to assist users test maint I think it'll be useful to know how to reset the gsettings back to pre-upgrade.
09:54:45 *** miklcct has quit IRC
09:54:48 *** miklcct has joined #gnucash
09:54:48 *** ChanServ sets mode: +v miklcct
09:54:51 *** miklcct has quit IRC
09:55:07 *** miklcct has joined #gnucash
09:55:07 *** ChanServ sets mode: +v miklcct
09:55:15 *** chris_ is now known as chris
09:56:44 *** joo has joined #gnucash
09:56:44 *** ChanServ sets mode: +v joo
10:02:14 *** TownsendHardware has quit IRC
10:02:27 *** TownsendHardware has joined #gnucash
10:04:42 *** TownsendHardware has quit IRC
10:04:55 *** TownsendHardware has joined #gnucash
10:18:09 <jralls_laptop> chris_, https://code.gnucash.org/logs/2021/09/28.html#T06:14:35. Are you proposing that that should go in the 4.8 release notes?
10:18:13 *** storyjesse has joined #gnucash
10:21:12 *** chris has quit IRC
10:22:37 *** chris has joined #gnucash
10:22:37 *** ChanServ sets mode: +v chris
10:22:42 *** gncbot sets mode: +o chris
10:29:57 <chris> jralls: I have no idea... I'v hardly touched dconf-editor
10:50:06 <chris> well, after running maint from ninja install, trying dconf-editor to explore org/gnucash/GnuCash/* leads to "No schema available. (...) Do you want to erase it."
10:55:43 *** sergiomiguelrp has joined #gnucash
10:57:37 *** KipITOne has quit IRC
10:59:14 *** jervin has joined #gnucash
10:59:23 *** KipITOne has joined #gnucash
10:59:24 *** ChanServ sets mode: +v KipITOne
11:03:28 *** sbluhm has joined #gnucash
11:05:17 *** jervin has quit IRC
11:07:15 *** guak has joined #gnucash
11:16:46 *** chris has quit IRC
11:22:45 *** chf has joined #gnucash
11:47:19 *** storyjesse has quit IRC
11:55:09 *** storyjesse has joined #gnucash
12:01:57 <fell> https://aquamaniac.de/rdm/news/31
12:04:57 *** fell has quit IRC
12:05:39 *** fell has joined #gnucash
12:05:39 *** ChanServ sets mode: +o fell
12:07:37 *** Jeanl has joined #gnucash
12:10:37 *** Jeanl has quit IRC
12:14:44 *** sbluhm has quit IRC
12:22:55 <jralls_laptop> fell, Yeah, I saw that on the feed the other day. Let's hold off on updating until I can get 4.8 released.
12:28:43 *** storyjesse has quit IRC
12:29:47 <gjanssens> @tell chris If you don't hae a system-wide install of gnucash 4.7+, that schema is indeed not available. GSettings would bail out on that, but dconf just warns you about it. Erasing it is effectively the way to "reset" that setting.
12:29:47 <gncbot> gjanssens: The operation succeeded.
12:31:11 <gjanssens> @tell chris Note though to make your reset action effective you have to click the "Erase key" button and then at the bottom hit "Apply"
12:31:11 <gncbot> gjanssens: The operation succeeded.
12:33:00 <gjanssens> jralls_laptop: I don't know if this should be added in the release notes.
12:33:16 <gjanssens> Ordinary users don't have to reset the pref-version.
12:33:31 <jralls_laptop> I'm inclined to think not, for just that reason.
12:34:18 <gjanssens> If gnucash had crashed during migration, prefs-version is not updated (that happens at the end of a successful migratioin only)
12:34:48 <jralls_laptop> I was just typing that. Great minds think alike! ;-)
12:34:57 <gjanssens> :D
12:35:22 <gjanssens> So the remark was only aimed at beta-testers.
12:35:51 <gjanssens> Because once the migration has run once, it will not be run again and hence you wouldn't trigger the potential crash
12:37:57 <gjanssens> @tell chris: BTW dconf-editor doesn't find your schema because your <install-dir>/share is not part of the standard XDG_DATA_DIRS path environment variable.
12:37:57 <gncbot> gjanssens: The operation succeeded.
12:38:00 <jralls_laptop> Of that part I'm not so sure: Any access of the missing key will crash. Are other accesses protected with g_settings_key_exists (not the real name of the function...)
12:38:40 <gjanssens> As far as I know all is covered.
12:39:07 <jralls_laptop> OK
12:39:53 <gjanssens> Though on second thought I do wonder why it could crash in the first place if all access would be covered.
12:41:44 <jralls_laptop> You didn't protect g_settings_set_foo in migrate_key. It's documented as a programmer error to try to access a non-existent key.
12:43:20 <jralls_laptop> Which is a not really clear way of saying that those invariants are protected with an assert instead of the usual return-if-fail.
12:43:23 *** kcin has joined #gnucash
12:45:10 <gjanssens> No that's not it. I'm using gnc_gsettings_set_foo, which is our wrapper that does check for the existence of the key
12:46:37 <gjanssens> I believe the actual crash is more likely in gnc_gsettings_get_settings_ptr
12:46:50 *** Jeanl has joined #gnucash
12:47:08 <gjanssens> There's a naked call to g_settings_new in there. If that gets an invalid path, it will crash.
12:47:10 *** Jeanl has quit IRC
12:47:39 *** Jeanl has joined #gnucash
12:48:36 <jralls_laptop> It's missing the check somewhere. I'm on the wrong computer to have a backtrace handy, but that will show it.
12:50:39 *** Jeanl has quit IRC
12:50:43 <gjanssens> As I said, the check is missing around g_settings_new IMO
12:51:09 <gjanssens> We could protect it by pre-checking if the schemaname is valid by using https://developer-old.gnome.org/gio/unstable/gio-GSettingsSchema-GSettingsSchemaSource.html#g-settings-schema-source-lookup
12:51:57 <gjanssens> I won't have time for that today, and it's probably not required for the snap release. But it should be done in the near future to prevent any further such crashes.
12:54:28 <jralls_laptop> OK. That's a simple change, I can do it before I re-tag. Might as well get it in now.
12:55:20 *** bertbob has quit IRC
12:55:49 <gjanssens> Sure
12:57:16 *** hptina has quit IRC
12:58:22 <gjanssens> Just quickly ran the test: I removed the history schema and recompiled the schema directory. The crash is indeed in gnc_gsettings_get_settings_ptr
13:00:14 *** bertbob has joined #gnucash
13:00:14 *** ChanServ sets mode: +v bertbob
13:00:30 <jralls_laptop> Good.
13:17:42 *** sbluhm has joined #gnucash
13:21:23 *** jralls_laptop has quit IRC
13:21:30 *** jhweruyuw has joined #gnucash
13:22:01 *** Pegasus_RPG has quit IRC
13:22:25 *** jralls_laptop has joined #gnucash
13:26:24 *** Mechtilde has joined #gnucash
13:32:35 *** hptina has joined #gnucash
13:32:37 *** ChanServ sets mode: +v hptina
13:33:09 *** Hamaryns has joined #gnucash
13:33:09 *** ChanServ sets mode: +v Hamaryns
13:40:26 *** Hamaryns has quit IRC
13:43:35 *** jralls_afk is now known as jralls
13:56:39 *** joo has quit IRC
14:02:17 *** joo has joined #gnucash
14:02:17 *** ChanServ sets mode: +v joo
14:07:45 *** Mechtilde has quit IRC
14:42:53 *** ArtGravity has joined #gnucash
14:42:54 *** ChanServ sets mode: +v ArtGravity
15:04:57 *** sbluhm has quit IRC
15:26:46 *** sbluhm has joined #gnucash
15:58:35 *** tomk_dk has quit IRC
16:23:12 *** gjanssens has quit IRC
16:29:59 *** User has quit IRC
16:45:37 *** sbluhm has quit IRC
16:55:50 *** jralls changes topic to "Free GPL Personal and Small Business Accounting || Moderated mode: To get a voice, register with NickServ and then re-join. || Please don't ask to ask, just ask and wait! (Possibly a few hours!!) || publicly-logged channel || latest stable: 4.8 || www.gnucash.org || wiki.gnucash.org/wiki/"
17:24:29 *** kcin has quit IRC
17:34:29 *** bertbob has quit IRC
17:36:42 *** bertbob has joined #gnucash
17:36:42 *** ChanServ sets mode: +v bertbob
17:50:11 <fell> jrall, Subject: ANNOUNCE: GnuCash 4.7 Released ???
17:55:34 <jralls> Oops.
17:55:34 <gncbot> jralls: Sent 14 hours and 53 minutes ago: <gjanssens> It dawned on me this morning as well we have been chasing the wrong tail. I think the real issue is I have changed the build order so gnucash/gschemas is processed before import. During build this doesn't matter as we're proper dependency tracking in place. That's not the case for the install target.
17:55:35 <gncbot> jralls: Sent 14 hours and 49 minutes ago: <gjanssens> I'll work on it some more today, I have a hypothesis to test for a proper fix.
17:55:36 <gncbot> jralls: Sent 11 hours and 45 minutes ago: <gjanssens> I can confirm the issue is indeed glib-compile-gschema runs before all schema files are installed and it effectively happens because I changed the build order to accommodate for creating migratable_prefs.xml.
17:55:37 <gncbot> jralls: Sent 11 hours and 44 minutes ago: <gjanssens> I have reset the proper build order and rewrote the rules to generate migratable-prefs.xml in a way that works with this reversed build order.
17:55:38 <gncbot> jralls: Sent 11 hours and 43 minutes ago: <gjanssens> In my testing this now works both for a ninja or make based build, starting from empty build and install directories in each case.
17:55:39 <gncbot> jralls: Sent 8 hours and 34 minutes ago: <gjanssens> the last message was told to jrals (with a single 'l' by mistake) be sure to read that one as well :)
17:56:32 <jralls> @notes jrals
17:56:32 <gncbot> jralls: Sent 11 hours and 41 minutes ago: <gjanssens> Note to reproduce the crash during migration, one has to make sure the migration runs each time by unsetting the prefs-version key under GSettings path /org/gnucash/GnuCash/general. On linux that can be done with dconf-editor (after setting the proper XDG_DATA_DIRS to include the relevant gnucash build or installation directory).
18:44:05 *** ArtGravity has quit IRC
19:02:19 *** hptina_ has joined #gnucash
19:02:47 *** hptina has quit IRC
19:05:55 *** CDB-Man has quit IRC
19:06:29 *** CDB-Man has joined #gnucash
19:06:29 *** ChanServ sets mode: +v CDB-Man
19:16:49 *** TownsendHardware has quit IRC
19:20:29 *** hptina_ is now known as hptina
19:55:48 *** Pegasus_RPG has joined #gnucash
19:58:47 *** hptina has quit IRC
20:06:38 *** chris has joined #gnucash
20:06:38 *** ChanServ sets mode: +v chris
20:06:38 *** gncbot sets mode: +o chris
20:07:06 <chris> gnc-gsettings.cpp#L104 is probably a superfluous paste :)
20:14:33 <jralls> Actually it's a superfluous left-over from moving it inside the if (!gset).
20:15:06 <jralls> Odd that it doesn't break the compile.
20:16:19 <jralls> Oh, I see the close way on the right.
20:17:51 *** hptina has joined #gnucash
20:17:53 *** ChanServ sets mode: +v hptina
20:29:10 *** User has joined #gnucash
20:43:18 *** guak has quit IRC
20:59:29 <chris> CDB-Man: I'll work on the updated truth table. For the ifrs-report I'll *try* to be slightly more forgiving than the truth table suggests; eg. if a txn has a BUY txn with a zero-value, zero-amount split to Dividend(INCOME) account, it should still be interpreted as a valid BUY txn. We'll see if it break things.
21:15:31 <chris> jralls: https://imgur.com/i5kpQnU.png here's the annotated truth table. Is there a nicer way to encode the 8-state allowable fields?
21:24:24 *** jhweruyuw has quit IRC
21:43:33 *** jervin has joined #gnucash
21:55:47 *** hptina has quit IRC
22:15:36 *** User has quit IRC
22:29:15 *** PhotoMan has quit IRC
22:29:32 *** PhotoMan has joined #gnucash
22:29:32 *** ChanServ sets mode: +v PhotoMan
22:52:35 <CDB-Man> Sounds good Chris
23:14:33 *** PhotoMan has quit IRC
23:14:48 *** PhotoMan has joined #gnucash
23:14:48 *** ChanServ sets mode: +v PhotoMan
23:37:37 *** PhotoMan has quit IRC
23:37:50 *** PhotoMan has joined #gnucash
23:37:50 *** ChanServ sets mode: +v PhotoMan