boinc icon indicating copy to clipboard operation
boinc copied to clipboard

Linux: Manager crashes when switching between views

Open RichardHaselgrove opened this issue 3 years ago • 30 comments

Describe the bug Launching the Manager in simple view, and switching to advanced view, works. Launching in Advanced view, and making a double switch (from advanced to simple view, and again from simple to advanced view) crashes the Manager. No warning, no dialog, no messages - it just disappears.

Steps To Reproduce

  1. Open Manager
  2. Switch views once or twice, depending where you start from

Expected behavior No crash.

System Information

  • OS: Linux Mint 20.3 Una
  • BOINC Version: v7.20.0 pre-release from @LocutusOfBorg PPA

image

Additional context Found while testing for #4783. The wxWidgets debug alert doesn't appear in Linux, but this does happen.

RichardHaselgrove avatar Jun 14 '22 10:06 RichardHaselgrove

@RichardHaselgrove, are you able to reproduce this on master with latest build artifacts?

AenBleidd avatar Jun 14 '22 10:06 AenBleidd

Um. It's not the same, but...

Tested with linux_manager-with-webview_1bbc873314e287cc924fdac5e11f0617132fe668.zip from #4778 from yesterday. The 'About' dialog shows

image

It doesn't crash, but simple view displays as

image

It should be

image

or thereabouts.

Note that @LocutusOfBorg's PPA is an automatically updated test tool, intended for exactly this sort of work: but it is based on certain Debian tweaks to the original BOINC code. In particular, certain menu options in the Manager are removed: there are no separate options for 'minimise window' and 'exit application': 'Close window' (ctrl-W) in advanced view becomes a synonym for 'exit application'.

RichardHaselgrove avatar Jun 14 '22 11:06 RichardHaselgrove

This is exactly the reason why I hate wxWidgets. @RichardHaselgrove, I'll try to check it out and send you some executables for testing because I have no linux system to test it by myself.

AenBleidd avatar Jun 14 '22 11:06 AenBleidd

Looking at wxWidgets website, they updated to 3.1.7 just last week. One item in their changelog is: "And many, many bugs fixes, including for the regressions in 3.1.6."

Is it possible by using the most current version of wxWidgets this may fix itself?

As a side note (for my curiosity and lack of understanding), why is Linux's (LocutusOfBorg's PPA) using the stable version (3.0.x) of wxW and Windows uses the development (3.1.x) version?

Vulpine05 avatar Jun 14 '22 12:06 Vulpine05

As a side note (for my curiosity and lack of understanding), why is Linux's (LocutusOfBorg's PPA) using the stable version (3.0.x) of wxW and Windows uses the development (3.1.x) version?

Mainly because stable version is 2 years old and doesn't contain important fixes for HighDPI displays support on Windows OS

Is it possible by using the most current version of wxWidgets this may fix itself?

Need to be tested. I'll check this. Thanks for the hint

AenBleidd avatar Jun 14 '22 12:06 AenBleidd

As a side note (for my curiosity and lack of understanding), why is Linux's (LocutusOfBorg's PPA) using the stable version (3.0.x) of wxW and Windows uses the development (3.1.x) version?

Mainly because stable version is 2 years old and doesn't contain important fixes for HighDPI displays support on Windows OS

Is it possible by using the most current version of wxWidgets this may fix itself?

Need to be tested. I'll check this. Thanks for the hint

On my Ubuntu22.04 box, I have built both 7.20.0 and 7.21.0, the latter in a VM against 3.0.5 version of wxWidgets and both seem to perform normally. Which seems strong evidence that that is where the problem lies.

Dave-catcher avatar Jun 14 '22 19:06 Dave-catcher

Is it possible by using the most current version of wxWidgets this may fix itself?

Need to be tested. I'll check this. Thanks for the hint

Since the Simple View has worked this way for years, I think the warning was incorrect. I will be curious whether the warning still occurs with wxWidgets 3.1.7. Please let me know.

CharlieFenton avatar Jun 14 '22 21:06 CharlieFenton

@LocutusOfBorg, is there anything that prevents you from building 7.20.0 with wxWidgets 3.1.6?

AenBleidd avatar Jun 14 '22 23:06 AenBleidd

Hello, this is the reason https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=919903

LocutusOfBorg avatar Jun 25 '22 19:06 LocutusOfBorg

It looks like we have a new stable release that is about to emerge: https://github.com/wxWidgets/wxWidgets/releases/tag/v3.2.0-rc1

Vulpine05 avatar Jun 28 '22 13:06 Vulpine05

@Vulpine05, I don't feel safe to upgrade to wxWidgets 3.2.0. BOINC Manager is tested with 3.1.* for Windows and OSX. Upgrading to 3.2.0 will require a new round of testing that I'd like to avoid and not delay 7.20.1 release of BOINC. I plan to check why it's crashing on wxWidgets 3.0.4 and make a linux-only fix, and later make next major release of BOINC with new wxWidgets. Otherwise it might take another couple of months just to test new wxWidgets and fix possible issues (and there were a lot of fixes that we made for Windows after upgrading from 3.0.* to 3.1.6

AenBleidd avatar Jun 28 '22 13:06 AenBleidd

@LocutusOfBorg,could you please tell me what version of wxwidgets was used to build BOINC release 7.18.1 for Linux? @RichardHaselgrove, by any chance, are you able to reproduce this issue on older build of BOINC for Linux (any old one from the PPA)? If no - what is the version of wxwidgets shown there in About dialog? Thank you both in advance.

AenBleidd avatar Jun 28 '22 17:06 AenBleidd

A bit difficult. I run the PPA on an automatic 'notify me of the most recent update when available' basis, and install them at interesting or convenient moments. I haven't tried to roll back to previous versions, and at this moment I wouldn't know where to start.

I'll do some thinking and reading in the morning, but it may not be quick.

RichardHaselgrove avatar Jun 28 '22 18:06 RichardHaselgrove

@RichardHaselgrove, this is not urgent, so please take your time and feel free to do that when it's most convenient to you. Thank you very much.

AenBleidd avatar Jun 28 '22 18:06 AenBleidd

wxwidgets is 3.0.5

LocutusOfBorg avatar Jun 29 '22 08:06 LocutusOfBorg

@LocutusOfBorg, but 7.20.0 is built with wxwidgets 3.0.4. Why did you downgrade?

AenBleidd avatar Jun 29 '22 08:06 AenBleidd

@LocutusOfBorg, btw, was 7.18.1 build with WebView support or without it ?

AenBleidd avatar Jun 29 '22 08:06 AenBleidd

boinc is built with system wxwidgets3.0.

and its built with this version: bionic 3.0.4+dfsg-3 focal 3.0.4+dfsg-15build1 impish 3.0.5.1+dfsg-2 jammy 3.0.5.1+dfsg-4 kinetic 3.0.5.1+dfsg-4

I always build with webview support.

LocutusOfBorg avatar Jun 29 '22 08:06 LocutusOfBorg

Well, I've had a bit of a poke around, and found where installation packages are cached:

image But only the current working version is there - no older builds. This one from 27 June still says it uses wxWidgets 3.0.4, and doesn't yet have the skins folder in the package.

I've also had a look round the public view of https://launchpad.net/~costamagnagianfranco/+archive/ubuntu/boinc, but I can't see any past builds there, either (they might exist in a 'registered users only' area, but I don't have access). So it'll be hard to work out when this bug entered the system.

RichardHaselgrove avatar Jun 29 '22 14:06 RichardHaselgrove

@LocutusOfBorg, but 7.20.0 is built with wxwidgets 3.0.4. Why did you downgrade?

He didn't downgrade. This version we compiled ourself before my upgrade and we compile with 3.0.4 On ubuntu 22.04, there is a boinc 7.18.1 and it compiled with share wxwidgets that found on the system and it 3.0.5.1.

Also next versions (7.20.0 and 7.20.1) will be compile with wxwidgets 3.0.5.1.

talregev avatar Jun 29 '22 17:06 talregev

@LocutusOfBorg Are 3.2.0 is ready for Debian packages?

talregev avatar Jun 29 '22 17:06 talregev

@LocutusOfBorg Are 3.2.0 is ready for Debian packages?

It's even not released yet

AenBleidd avatar Jun 29 '22 17:06 AenBleidd

I know. but there is a bug in 3.1.* that prevent them to upgrade. I want to understand if this bug is fixed for them. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=919903

talregev avatar Jun 29 '22 17:06 talregev

Ok, I just checked this on BOINC Manager 7.16.17 (on Ubuntu bionic) built with wxWidgets 3.0.4 and it has the same crash. So this is not a new issue thus should not be a release blocker. Currently I see two ways of fixing this:

  1. Wait for wxWidgets 3.2.0 release. If it will not be available on Ubuntu 20.04 and lower, then goto option 2
  2. Force build BOINC Manager for wxWidgets 3.0.* without WebView support. This will require additional testing, and thus could wait for BOINC 7.20.2 or BOINC 7.22.0 since there are a lot of other issues related to BOINC Manager SimpleGUI that are present in our releases since a while.

AenBleidd avatar Jun 30 '22 02:06 AenBleidd

Ok, I just checked this on BOINC Manager 7.16.17 (on Ubuntu bionic) built with wxWidgets 3.0.4 and it has the same crash. So this is not a new issue thus should not be a release blocker. Currently I see two ways of fixing this:

  1. Wait for wxWidgets 3.2.0 release. If it will not be available on Ubuntu 20.04 and lower, then goto option 2
  2. Force build BOINC Manager for wxWidgets 3.0.* without WebView support. This will require additional testing, and thus could wait for BOINC 7.20.2 or BOINC 7.22.0 since there are a lot of other issues related to BOINC Manager SimpleGUI that are present in our releases since a while.

When they will upgrade to 3.2.* wxwidgets, most likely they will not go backward on ubuntu versions. You cannot force anyone to use wxWidgets 3.0.* without WebView support. Debian maintainers can have patch fix for your enforcement in the code, and still compile it with wxwidgets with webview as they like.

This is an old bug across boinc linux versions. We didn't pay attention for linux boinc as we should. The fact that we found about the bug just recently, mean that boinc linux users living with this bug, and some is unaware of it. So we should accept this bug as known issue on old boinc linux.

talregev avatar Jun 30 '22 04:06 talregev

Debian maintainers can have patch fix for your enforcement in the code, and still compile it with wxwidgets with webview as they like.

If this will fix the issue with the crash - but do they need to do that?

AenBleidd avatar Jun 30 '22 07:06 AenBleidd

Debian maintainers can have patch fix for your enforcement in the code, and still compile it with wxwidgets with webview as they like.

If this will fix the issue with the crash - but do they need to do that?

And create other issues that we don't aware of them yet? And fix an issue that is not critical? Even if it a crash, you need to do rare action many time. this is not usually how users use our manager. That why my opinion is to change this issue to known issue for old linux boinc manager.

talregev avatar Jun 30 '22 07:06 talregev

And create other issues that we don't aware of them yet?

Please read my message carefully. I said that such a change will require additional testing, so this will definitely not be just patched and dropped without proper testing and fixing new issues.

AenBleidd avatar Jun 30 '22 07:06 AenBleidd

And create other issues that we don't aware of them yet?

Please read my message carefully. I said that such a change will require additional testing, so this will definitely not be just patched and dropped without proper testing and fixing new issues.

I read it. I know it will be with additional checking and testing. I say we shouldn't need to spend our resources to check and test different ui and go backward just for this bug.

talregev avatar Jun 30 '22 07:06 talregev

I say we shouldn't need to spend our resources to check and test different ui and go backward just for this bug.

We can discuss this later together with @LocutusOfBorg and decide how to proceed with this issue

AenBleidd avatar Jun 30 '22 07:06 AenBleidd