aristocratos / aristocratos/bashtop

[BUG] Hang on startup during CPU detection due to °C unit in temperature readout

Open
#234 0 comments 0 reactions 1 assignee Claimed by @aristocratos View on GitHub
bug
Dominant language
Shell
Stars
11.1k
Forks
555
PR merge metrics
No merged PRs in 30d

Description

If the `sensors` command is not available, the Python `get_sensors()` function is called instead. That function returns temperature values with "°C" appended:

https://github.com/aristocratos/bashtop/blob/60f95a1a74c8e7e589c02aa03d60141152df8337/bashtop#L4899-L4903

However, it seems that the unit is not properly removed from temperature values, causing an error on startup:

```
/usr/local/bin/bashtop: line 2151: (33°C-20)*100/(cpu[temp_high]-20) : syntax error: invalid arithmetic operator (error token is "°C-20)*100/(cpu[temp_high]-20) ")
```

This hangs bashtop in a 100% CPU loop, and a second session has to be opened to kill the process.

The error site is:

https://github.com/aristocratos/bashtop/blob/60f95a1a74c8e7e589c02aa03d60141152df8337/bashtop#L2151

The bug is probably in the Intel CPU package temperature code (and may also exist in the AMD code too), and my guess would be that the trailing unit isn't cut off, but my bash-fu isn't good enough to figure out exactly where the issue arises.

**Info:**
- Bashtop version: 0.9.25
- OS: TrueNAS CORE (FreeBSD 13.1)
- Psutil version: 5.9.4
- Bash version: 5.2.15
- Terminal: PuTTY, invoking bashtop from tcsh 6.22.04

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.