BOINC / boinc

Open-source software for volunteer computing and grid computing.
https://boinc.berkeley.edu
GNU Lesser General Public License v3.0
2.02k stars 446 forks source link

Linux: Manager crashes when switching between views #4784

Closed RichardHaselgrove closed 1 year ago

RichardHaselgrove commented 2 years ago

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

image

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

AenBleidd commented 2 years ago

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

RichardHaselgrove commented 2 years ago

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'.

AenBleidd commented 2 years ago

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.

Vulpine05 commented 2 years ago

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?

AenBleidd commented 2 years ago

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

Dave-catcher commented 2 years ago

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.

CharlieFenton commented 2 years ago

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.

AenBleidd commented 2 years ago

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

LocutusOfBorg commented 2 years ago

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

Vulpine05 commented 2 years ago

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

AenBleidd commented 2 years ago

@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 commented 2 years ago

@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.

RichardHaselgrove commented 2 years ago

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.

AenBleidd commented 2 years ago

@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.

LocutusOfBorg commented 2 years ago

wxwidgets is 3.0.5

AenBleidd commented 2 years ago

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

AenBleidd commented 2 years ago

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

LocutusOfBorg commented 2 years ago

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.

RichardHaselgrove commented 2 years ago

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.

talregev commented 2 years ago

@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 commented 2 years ago

@LocutusOfBorg Are 3.2.0 is ready for Debian packages?

AenBleidd commented 2 years ago

@LocutusOfBorg Are 3.2.0 is ready for Debian packages?

It's even not released yet

talregev commented 2 years ago

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

AenBleidd commented 2 years ago

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.
talregev commented 2 years ago

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.

AenBleidd commented 2 years ago

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?

talregev commented 2 years ago

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.

AenBleidd commented 2 years ago

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.

talregev commented 2 years ago

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.

AenBleidd commented 2 years ago

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 commented 2 years ago

This is still reproducible on @LocutusOfBorg build with wxWidgets 3.2.0

Vulpine05 commented 1 year ago

I just tested this on two computers, both with Ubuntu 18.04 using the new 7.20.5 from @LocutusOfBorg's PPA which is built with wxWidgets 3.2.0. I switched between simple and advanced views at least half a dozen times without any problems. @RichardHaselgrove, can you confirm on your end?

talregev commented 1 year ago

The ppa doesn't determine the version of wxWidgets, it depends on Ubuntu version you have. It still takes the wxWidgets from official Ubuntu ppa. That why snap was invented.

AenBleidd commented 1 year ago

That why snap was invented.

Before snap static linking was invented to prevent exactly this issue.

talregev commented 1 year ago

We talking about ppa. They work in share mode. If @LocutusOfBorg is compile it statically it against Ubuntu way.

AenBleidd commented 1 year ago

Snap isn't distributed via PPA as well. So it's completely different, and cannot be compared.

talregev commented 1 year ago

You miss my point. I was talking about the wxWidgets version inside ppa. Not sure why you argue about the facts and add some non relevant information.

AenBleidd commented 1 year ago

Again: you could build application with static or dynamic linking and distribute it via PPA. Snap package is not distributed via PPA because it has completely different installation procedure. So your comment about snap is not relevant.

RichardHaselgrove commented 1 year ago

Sorry, I didn't notice that this was also one of mine this morning - @Vulpine05, ignore the question I asked you in #5022, it's answered here.

I have two Linux machines:

Linux Mint 20.3 This has the full v7.20.5 suite installed directly from the PPA. The crashing bug on switch from Simple to Advanced view appears not to be present. Other bugs are apparent: notices dialog is blank when launched from Simple view, but notices are present when seen in Advanced view. And the exit menu from Simple view doesn't have the Linux distro customisations.

Linux Mint 21 I can't install from the PPA on this machine, because of a security policy change which rejects the signing key when presented from the PPA. However, I've copied the v7.20.5 client and boinccmd binaries from the 20.3 machine, and they work fine in the v7.18.1 framework from the Mint repository.

The PPA Manager desn't work, because of a library mis-match:

    libwx_gtk3u_webview-3.2.so.0 => not found
    libwx_gtk3u_html-3.2.so.0 => not found
    libwx_gtk3u_core-3.2.so.0 => not found
    libwx_baseu_net-3.2.so.0 => not found
    libwx_baseu-3.2.so.0 => not found

However, I've copied the v7.20.5 manager from the CI artifact for commit 03ff14dd95058722b913629b2066704468175370 (19 November 2022), and that also works without crashing when switching views.

RichardHaselgrove commented 1 year ago

Correction/update on the 'blank notices' from Simple view bug: moving the mouse pointer over the notice box reveals signs of life: the pointer changes to a text insertion symbol. It's even possible to copy the text and read it externally, but you're fishing blind: white text on a white background, highlighted in white.

AenBleidd commented 1 year ago

@RichardHaselgrove, since this is a wxWidgets issue, I'm not sure your testing with manual libraries update is correct: CI build is done with the latest version of wxWidgets that doesn't have this issue. Also I have no idea how to proceed with this ticket. I don't think it's reasonable to invest time trying to make some workaround for older version of wxWidgets.

RichardHaselgrove commented 1 year ago

I'm happy to accept that the crashing bug listed in the issue title is no longer present, and I'll close this issue.

But the 'white text on a white background' for notices in simple view was present in Manager v7.18.1 from the Mint 21 repo - I kept that as a backup in case I couldn't get any of the v7.20.5 managers to work. I'll open a new issue for that. Possibly after lunch - I remember it from somewhere, and I need to check it isn't a duplicate.

RichardHaselgrove commented 1 year ago

Yes, it's a duplicate - previously reported as #4902