[SRU] boinc-client crashes when started with core dump on Xubuntu 22.04

Bug #1970521 reported by Graham Jenkins
102
This bug affects 15 people
Affects Status Importance Assigned to Milestone
boinc (Ubuntu)
Fix Released
Undecided
Unassigned
Jammy
Fix Committed
Undecided
Unassigned

Bug Description

[ Impact ]

boinc-client is completely unusable on older CPU which does not have avx like a Celeron CPU.
It will crash immediately if run on old CPU, but will run without any problem on newer CPUs.

[ Test Plan ]

It should be done on both types of CPUs, one which has AVX, and one which does not have AVX.
If using qemu then "-cpu Conroe-v1" will emulate Celeron CPU without AVX.

Confirm with the command "lscpu" and check the flags if "avx" is listed or not.

Commands to execute for testing on both CPUs:

1. Install boinc
2. Execute "boinc" from a terminal

If the package is not fixed then it will fail to start.

[ Where problems could occur ]

There is no change in the code and is only modifying debian/rules so that the built binary does not have any machine instruction for AVX. It will result in a different executable machine code but chances of regression due to this is very low.

There does not seem to be performance-critical code in the boinc client
or boinc library (which is the API provided for the boinc _applications_,
which are performance-critical path; the API is not a high-performance lib).

Thus, removing AVX from the package, even for the API, would not seem to
cause a performance regression for working/avx-capable processor models.

[ Other Info ]

This change is from Debian and is part of Ubuntu from Kinetic onwards. There has been no reported regression due to this change.
The Debian change is at: https://salsa.debian.org/pkg-boinc-team/boinc/-/commit/a0611c2bc86864428337b07b382e4d5cf823b95d

[ Original Bug Description ]

lsb_release -rd
Description: Ubuntu 22.04 LTS
Release: 22.04

apt-cache policy boinc-client
boinc-client:
  Installed: 7.18.1+dfsg-4
  Candidate: 7.18.1+dfsg-4
  Version table:
 *** 7.18.1+dfsg-4 500
        500 http://au.archive.ubuntu.com/ubuntu jammy/universe amd64 Packages
        100 /var/lib/dpkg/status

I expected boinc-client to start; it crashed immediately with a core dump.

ProblemType: Bug
DistroRelease: Ubuntu 22.04
Package: boinc-client 7.18.1+dfsg-4
ProcVersionSignature: Ubuntu 5.15.0-27.28-generic 5.15.30
Uname: Linux 5.15.0-27-generic x86_64
ApportVersion: 2.20.11-0ubuntu82
Architecture: amd64
CasperMD5CheckResult: unknown
Date: Wed Apr 27 15:04:19 2022
InstallationDate: Installed on 2019-12-24 (854 days ago)
InstallationMedia: Xubuntu 18.04.2 LTS "Bionic Beaver" - Release amd64 (20190210)
ProcEnviron:
 LANGUAGE=en_AU:en
 TERM=xterm-256color
 PATH=(custom, no user)
 LANG=en_AU.UTF-8
 SHELL=/bin/bash
SourcePackage: boinc
UpgradeStatus: Upgraded to jammy on 2022-04-24 (3 days ago)

Revision history for this message
Graham Jenkins (grahjenk) wrote :
Revision history for this message
Graham Jenkins (grahjenk) wrote :

Seems like it's trying to execute an instruction that's not found on an: Intel(R) Pentium(R) 4 CPU 3.00GHz

The version that came with Ubuntu 20.04 ran correctly on this machine. Please investigate and recompile as appropriate.

Graham J.

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in boinc (Ubuntu):
status: New → Confirmed
Revision history for this message
Pseudonym (404emailnotfound) wrote :

Just hit this after upgrading my first machine to 22.04. Seems broken on machines without AVX.

Appears to be fixed-but-not-released in Debian upstream https://salsa.debian.org/pkg-boinc-team/boinc/-/commit/a0611c2bc86864428337b07b382e4d5cf823b95d

Revision history for this message
Graham Jenkins (grahjenk) wrote :

Any idea when a fix will be available in 22.04?

Revision history for this message
Graham Jenkins (grahjenk) wrote :

Seems that with 22.04.1 it's still not fixed :(

Revision history for this message
mihasetina (miha-setina) wrote :

Same here. Since no one posted logs. Let me try:
Syslog:
Sep 28 09:26:03 gpubox kernel: [ 243.519797] show_signal: 22 callbacks suppressed
Sep 28 09:26:03 gpubox kernel: [ 243.519804] traps: boinc[1199] trap invalid opcode ip:55b057e1e6a8 sp:7ffd0b77a7a0 error:0 in boinc[55b057e14000+c3000]
Sep 28 09:26:04 gpubox systemd[1]: boinc-client.service: Main process exited, code=dumped, status=4/ILL
Sep 28 09:26:04 gpubox systemd[1]: boinc-client.service: Failed with result 'core-dump'.
lscpu:
Architecture: x86_64
  CPU op-mode(s): 32-bit, 64-bit
  Address sizes: 36 bits physical, 48 bits virtual
  Byte Order: Little Endian
CPU(s): 4
  On-line CPU(s) list: 0-3
Vendor ID: GenuineIntel
  Model name: Intel(R) Celeron(R) CPU J1900 @ 1.99GHz
    CPU family: 6
    Model: 55
    Thread(s) per core: 1
    Core(s) per socket: 4
    Socket(s): 1
    Stepping: 8
    CPU max MHz: 2415.7000
    CPU min MHz: 1332.8000
    BogoMIPS: 4000.00
    Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm con
                         stant_tsc arch_perfmon pebs bts rep_good nopl xtopology tsc_reliable nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds
                         _cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer rdrand lahf_lm 3dnowprefetch epb pti ibrs ibpb stibp tpr_sha
                         dow vnmi flexpriority ept vpid tsc_adjust smep erms dtherm ida arat md_clear
Virtualization features:
  Virtualization: VT-x
Caches (sum of all):
  L1d: 96 KiB (4 instances)
  L1i: 128 KiB (4 instances)
  L2: 2 MiB (2 instances)
NUMA:
  NUMA node(s): 1
  NUMA node0 CPU(s): 0-3
Vulnerabilities:
  Itlb multihit: Not affected
  L1tf: Not affected
  Mds: Mitigation; Clear CPU buffers; SMT disabled
  Meltdown: Mitigation; PTI
  Mmio stale data: Not affected
  Retbleed: Not affected
  Spec store bypass: Not affected
  Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization
  Spectre v2: Mitigation; Retpolines, IBPB conditional, IBRS_FW, STIBP disabled, RSB filling
  Srbds: Not affected
  Tsx async abort: Not affected

any chance to move to 7.18.1+dfsg-5?

Revision history for this message
mihasetina (miha-setina) wrote :

In my case I have a plain valila Ubuntu 22.04 server

Revision history for this message
mobrien118 (mobrien118) wrote (last edit ):

Upgrading to the BOINC version in this repo has resolved the issue for me:
https://launchpad.net/~costamagnagianfranco/+archive/ubuntu/boinc

Also worth mentioning, I'm running BOINC on a VM (using KVM, on a HP Proliant G6 server) and the VM doesn't have any other packages installed other than BOINC and Webmin, so it is a pretty generic test platform if there is anything I can help try.

Revision history for this message
Hydro (hydrosaure) wrote :

wow more than a year since last comment

Revision history for this message
Sudip Mukherjee (sudipmuk) wrote :

I can reproduce the issue on a Jammy. Had to use qemu with "-cpu Conroe-v1" to emulate "Intel Celeron" cpu.

Changed in boinc (Ubuntu Jammy):
status: New → In Progress
assignee: nobody → Sudip Mukherjee (sudipmuk)
Changed in boinc (Ubuntu):
status: Confirmed → Fix Released
Revision history for this message
Sudip Mukherjee (sudipmuk) wrote :

debdiff attached.

summary: - boinc-client crashes when started with core dump on Xubuntu 22.04
+ [SRU] boinc-client crashes when started with core dump on Xubuntu 22.04
description: updated
Changed in boinc (Ubuntu Jammy):
status: In Progress → Confirmed
assignee: Sudip Mukherjee (sudipmuk) → nobody
Revision history for this message
Dave Jones (waveform) wrote :

Looks good to me; sponsoring.

Revision history for this message
Mauricio Faria de Oliveira (mfo) wrote :

Marked bug 1988863 as a duplicate.

description: updated
Revision history for this message
Mauricio Faria de Oliveira (mfo) wrote (last edit ):

Looked at potential performance regressions of removing AVX instructions.
(Updated the SRU template sections accordingly.)

The boinc packages do not provide high-performance code, it's the boinc
_applications_ written to be run by the client and linked against the
library for API access that have the high-performance code, IIUIC.

The API documentation/headers do not seem to provide any high-performance
functions (e.g., the crypto part are wrapper for openssl), the only code
it seems to implement is MD5.

https://github.com/BOINC/boinc/wiki/ProjectMain#developing-boinc-applications

Considering this change has been introduced in Debian ~2 years ago
(Feb-Jun 2022) and in Ubuntu Kinetic (22.10) and is still in place,
there indeed does not seem to be a performance regression (or other
issues related to it).

```
boinc (7.20.0+dfsg-1) unstable; urgency=medium

  [ Steffen Moeller ]
  * Reverse AVX instructions for better compatibility with older servers
```

https://launchpad.net/ubuntu/kinetic/+source/boinc

Changed in boinc (Ubuntu Jammy):
status: Confirmed → Fix Committed
tags: added: verification-needed verification-needed-jammy
Revision history for this message
Mauricio Faria de Oliveira (mfo) wrote : Please test proposed package

Hello Graham, or anyone else affected,

Accepted boinc into jammy-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/boinc/7.18.1+dfsg-4ubuntu0.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, what testing has been performed on the package and change the tag from verification-needed-jammy to verification-done-jammy. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-jammy. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Revision history for this message
Sudip Mukherjee (sudipmuk) wrote :

I can confirm that boinc-client from jammy-proposed has fixed the bug for me.

Test done:

Start a Jammy vm with "-cpu Conroe-v1".
Confirm from lscpu that avx is not present in Flags.

$ lscpu | grep Flags
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx lm constant_tsc rep_good nopl cpuid

install boinc-client

execute boinc and confirm it crashes

Add jammy-proposed to apt sources
update boinc-client from jammy-proposed

execute boinc again and cofirm it did not crash.

Test result: the issue with boinc-client has been fixed.

Package tested:

$ apt-cache policy boinc-client
boinc-client:
  Installed: 7.18.1+dfsg-4ubuntu0.1
  Candidate: 7.18.1+dfsg-4ubuntu0.1
  Version table:
 *** 7.18.1+dfsg-4ubuntu0.1 500
        500 http://gb.archive.ubuntu.com/ubuntu jammy-proposed/universe amd64 Packages
        100 /var/lib/dpkg/status
     7.18.1+dfsg-4 500
        500 http://gb.archive.ubuntu.com/ubuntu jammy/universe amd64 Packages

tags: added: verification-done verification-done-jammy
removed: verification-needed verification-needed-jammy
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.