Tuesday, 2020-12-15

*** frinring_ is now known as frinring02:28
*** zbenjamin is now known as Guest8812602:44
*** zbenjamin_ is now known as zbenjamin02:44
*** nyov is now known as Guest1599804:26
dcalisteGood evening chriadam, how are you ? Thanks for the various merges !07:59
chriadamhi dcaliste08:01
chriadamI'm well, thank you08:01
chriadamhow are you?08:01
chriadamno worries, was meant to get to them last week, but didn't get around to it until today08:02
chriadamI also poked Martin about the event reminder time selection thing, and he has uploaded a design prototype to your PR08:02
chriadamand flypig said he'd look into the outstanding nemo-qml-plugin-calendar PR08:03
flypigYes, I'll try to look at it today.08:03
dcalisteThank you both. I've seen the message from Martin. Lease transmit my thanks to him also.08:07
chriadamcheers, done08:08
dcalisteDo you have time now to discuss the account enable binding with buteo profile bindings ?08:09
chriadamI took a quick look08:10
chriadamso, is it the case that:08:10
chriadamthere was some code in buteo to "track account enablement changes, and ensure that the sync profiles associated with those accounts were enabled/disabled appropriately"08:11
chriadambut we had disabled it due to bugs08:11
chriadamand then, we simply check the account enabled status in the various sync plugins instead08:11
chriadamOR -> do we manually set the profile to disabled, when the account is set to disabled, in j-s-a (I assume not, but that was another possibility, I guess)08:11
dcalisteAs far as I understand it, it's the first case. Profile enable status is not in sync with the account one (machinery disabled in buteo) and every plugins still fire and quick return when the account is disabled.08:13
dcalisteThis is somehow inellegant but works well for all plugins... except the webcal one that is not using account machinery in the plugin itself.08:14
chriadamyup, that's also what I thought.  would be nice to avoid that "msyncd creates plugin process, plugin process checks account status and immediately exits" silliness, definitely.08:14
chriadamI still don't fully understand how the webcal plugin works, I think.08:14
dcalisteYes, instead of adding account checking in the plugin I decided to give a look to the disabled part in Buteo, in case.08:15
dcalisteAbout the webcal plugin, it's basically a CalDAV in slow sync all the time.08:15
chriadamdo we create an accounts&sso account, associated with the webcal endpoint, at all?  or is it solely a sync profile which we trigger somehow?08:17
dcalisteSorry, I got side-tracked by colleagues... We're creating an account for it, because it's simpler in the UI to follow existing workflow, but the account is not used in the buteo plugin.08:22
dcalisteThe webcal resources are often if not all time free of access.08:22
chriadamso we create the account so that it shows up in the accounts UI, and now so that we can enable/disable the profile just by enable/disable the account?08:23
dcalisteCould I be absent 5-10 minutes more ? I need to fix something here :/08:23
chriadamno rush08:24
chriadamof course08:24
dcalisteOk, sorry. I'm free now. So the problem that araised, is that enabling / disabling the webcal account in UI has no effect on the sync since only the profile is used.08:32
chriadamon the buteo-syncfw side: can you describe at a high level what your change does?  there are some things which I don't remember about at all08:33
chriadame.g. there seems to be an assumption in that code that the sync profile name should match the account service name, but that's not true for us, I think.08:34
dcalisteExact, so I rewrote that.08:34
chriadami.e. when creating the sync profiles for the account08:34
dcalisteI'm following the sailfish-component-account convention now, looking for a template name.08:35
dcalisteSo there was this problem to associate account service with profile in the existing buteo code, but there was also some strange things like modifying some account settings in particular cases.08:36
dcalisteI've totally removed that.08:36
dcalisteThe code is much simpler now.08:36
chriadamagain, a lot of this might be historical, e.g. we previously had some sync profiles which were associated with multiple services, i.e. would only activate if both services were enabled, for example08:36
dcalisteIt is triggered on account enable signal (which may trigger on no changes we know about that now) and it is updating only the profile enable status, based on current account / service enable status.08:37
chriadamand some where a single account service was used to activate multiple sync plugins (e.g. microblog service for facebook would enable both posts sync and also notifications sync, IIRC)08:37
dcalisteI think, I'm keeping this. We have the same for Nextcloud.08:38
dcalisteI've tested for CalDAV, webcal and Nextcloud that changing account and/or service in UI is triggerring the right profile.08:38
dcalisteThe logic finally is quite simple :08:39
dcaliste- if account or service is disable, find the associated profile based on template naming and disable it,08:39
dcaliste- if the service is enabled but the global is still disable, find the associated profile and disable it,08:40
dcaliste- if the account is enabled, but not the specific service, same as above,08:40
dcaliste- if both are enabled, enable the associated profile.08:40
dcalisteEverything stands on the fact that we can rely on account-service/profile matching.08:41
chriadamwhat can cause disable/enable of account?  just wondering if there are cases (like backup/restore) which might affect things08:42
chriadamnot a question for you, more just a thinking point for me08:43
dcalisteBeside direct action of user you mean ? Because long press on the account allow to disable it in settings. Also, there is a combo on every account page to enable / disable the account.08:44
dcalisteThe account can be disabled by mdm also I think from the code I've seen.08:44
chriadamyes, besides direct action by user08:46
chriadamworrying about possible case of e.g. user manually disables something, then performs action like backup/restore which might "automatically" disable->do_whatever->enable account.  at the end of the cycle, the account is in different state to what it should be.08:47
chriadambut, anyway, it's unrelated to this case, per-se08:47
chriadamjust thinking out loud08:48
chriadamI mean, the semantics you described sounds very sensible.08:49
dcalisteWell, about account changing state, this MR has no effect on this. In contrary to the code it is changing, it's not changing anything to the accounts it is listening to.08:49
chriadamyes, that's true08:50
dcalisteIt only tries to match the profile enable status with the one of the account.08:50
chriadamI guess I just meant: it's another side effect which might be triggered if that bug pre-exists elsewhere08:50
dcalisteYour concern in Gitlab about when the slot is triggered is valid though. In my testing it was working to disable or reenable the global account and have the profiles that reflect this. But I will check again for sure.08:51
chriadamout of interest: were you able to determine precisely why we disabled this behaviour originally?  was there any commit message or something which described precisely what bug was hit originally, which made me just disable it all?08:51
dcalisteI looked at the blame, and you did it !08:52
chriadamI remember disabling it08:52
chriadamI just don't remember why ;-)08:52
dcalisteThe commit message mentioned bug and race conditions but did enter into details.08:53
chriadamah I will check the bug number and see if I can find the info.  sec08:53
dcalisteThe fact that the earlier code was relying partly on the enabled value of the signal, and not the actual value by poking the account itself may be responsible.08:53
dcalisteThe fact also that in some case, this code generate a change in account setting themselves is suspicious to me.08:54
dcalisteI've completely removed this. I didn't see any use for it.08:54
chriadamI will send you an email08:55
chriadamwith the info08:55
dcalisteGreat thank you.08:55
dcalisteSo I can check I'm not reactivating some old demons :)08:56
dcalisteThe main concern I may have with this modification is if something is wrong somewhere, a profile may stay disabled while the account/service is active and the user won't notice anything, except that it's not syncing...08:57
dcalisteThis is JB#33183 from the commit message of 76e33195a86e1b8c050db11d98b164922f6b58df09:01
dcalisteI would like to mentioned also that I didn't completely revert your changes from this commit.09:01
dcalisteIndeed, you also disabled sync schedule syncing between account and profile, which you're right made no sense in current usage.09:02
dcalisteThis I'm keeping it disabled !09:02
dcalisteI just reenabled the enable status following.09:02
chriadamdcaliste: for some reason I couldn't email it, got some error.  so I posted the info as a comment on the j-s-a PR#12709:05
chriadamthe short answer is: I think that the signal handling was triggering msyncd to try to load all sync profiles one-by-one from disk, and this was taking a long time in IO-congestion cases like restore09:05
chriadaminstead of fixing it properly (i.e. changing msyncd to have an in-memory cache of available profiles) I just ... disabled the signalling.09:06
dcalisteYes, thank you. I see the use case indeed. Before doing anything with this MR, I'll check how the new code can handle this use case and see if I need to change something.09:07
dcalisteThanks for the information.09:07
chriadamedited that ocmment now for more readability too09:08
chriadamI will also do some tests into this.  it may no longer be a problem, in any case, as we changed a bunch of things in the meantime09:09
chriadame.g. there was a change to disable msyncd altogether during backup/restore09:09
chriadamlet me find that one...09:09
chriadam[jolla-vault] Prevent synchronization during restore. Contributes to JB#3821009:10
chriadamyes, so that bug number 38210 is greater than 3318309:10
chriadamso I suspect that this isn't an issue any more09:10
chriadamas none of that stuff should get triggered during a backup/restore at all, now.,09:10
chriadamwell, will give it some thought and testing :-)09:12
chriadamI think it should be fine.09:12
chriadamgiven the fast-approaching christmas vacations, it's unlikely I'll merge these two this year09:13
chriadamI hope that's ok?09:13
dcalisteNo problem, it's not important !09:15
chriadamthanks very much09:16
chriadamdid you have anything else to discuss today?  was there any PRs which slipped my memory?09:16
dcalisteThis one maybe : jolla-calendar #27809:17
chriadampoked joona and pekka about that one earlier09:17
chriadamit's a one liner which should just be merged imo09:17
chriadambut ... will let them approve that one first09:17
dcalisteHopefully yes ;)09:17
dcalisteOne last thing, if you don't mind :09:17
chriadamsure :-)09:18
chriadamah.  interesting...09:19
dcalisteCurrently the signing process for an email is broken, I guess because of missing permissions in sand boxing.09:19
dcalisteI'm eager to investigate it, but I would appreciate some hints if time allows it.09:20
dcalisteI think, I should do something like account is doing, or msyncd. But at first sight, the permission syntax is not that clear to me. Particularly the part dealing with DBus.09:21
chriadamunfortunately I know very little about the sandboxing stuff, currently - I need to get myself up to speed..09:21
dcalisteNot that DBus itself has a crystal clear syntax neither...09:21
chriadamspiiroin or rainemak would be able to help I think09:21
chriadamI have pinged Raine internally, hopefully he or Tomin get a chance to add some information to the issue09:23
dcalisteKind of hints like, how to run the thing in CLI with verbose output so I know which access is blocked by firejail.09:23
dcalisteBecause I'm afraid that enabling things blindly in a permission file would take a lot of time.09:23
dcalisteThanks chriadam for the message in the issue.09:25
chriadamlet me try to find a link, sec09:26
chriadamhrm, nope, couldn't find what I was looking for... I think in any case, waiting for one of the MW devs to answer would be best, otherwise I might tell you something wrong haha09:29
chriadamhttps://github.com/sailfishos/sailjail-permissions/blob/master/permissions/voicecall-ui.profile has one example of permission to talk to a dbus endpoint -- but that one is session bus09:30
chriadamsorry I cannot help further :-(09:32
dcalisteYes, I don't know because we're not speaking directly through DBus, but are using a library that is speaking DBus internally. Maybe it's the same ?09:32
dcalisteAnyway, I'll wait for more information. Particularly about getting verbose info from CLI would be usefull to investigate.09:33
dcalisteMaybe I can find directly something on the Internet about firejail itself.09:33
chriadamperhaps so09:33
dcalisteI'll keep you updated on progress !09:34
chriadamthanks :-)  I am interested to learn how it works, also ;-)09:34
chriadamand thank you again for your time and effort as always!09:34
chriadamit is much appreciated09:34
chriadamare you going on vacation next week, or will you be available also next Tuesday?09:34
dcalisteI guess it's now running late for you, so I wish you a good week.09:34
dcalisteI may be available next Tuesday if you're also. In case I cannot I'll email you before Monday evening.09:35
dcalisteIf that's fine enough for you ?09:35
chriadamsounds good - I should be here, but no problem if you're busy etc :-)09:35
chriadamoh, also:09:35
chriadamdo you want some Jolla t-shirt or scarf or anything for christmas?09:35
chriadamI think someone told me that we have some stuff we should be able to send you if you would like09:36
dcalisteThanks that fine ! Why not a scraf ? That could be usefull, winter has established itself here ;)09:36
chriadamexcellent!  I will give your email address to the appropriate person internally and ask them to get in contact with you, if that's ok?09:37
dcalisteSure, thank you !09:37
chriadam:-)  Ok, have a great week!09:37
*** albertux1 is now known as albertux10:03
*** albertux1 is now known as albertux17:30
*** albertux1 is now known as albertux17:37
piggzrinigus: ping19:50
riniguspiggz: ^20:06
piggzrinigus: components question ...20:09
piggzin the combobox .. how do i use it with a c++ model that has 2 roles ?20:10
piggzor, do i have to limit it to 1 role ?20:10
piggzqqc2 allows a text and value role, but thats maybe not portable20:10
riniguspiggz: I didn't need it => it was not implemented. as for portability, no idea.20:13
piggzok, i will just make it work with the 1 role for now20:14
riniguspiggz: you are welcome to extend components and make them better :)20:16
piggzrinigus: looks like im expecting some PRs on amazfish, for integration with postmarketOS21:40

Generated by irclog2html.py 2.17.1 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!