Bug 486896 - Browsing SMB causes kioslave5 to throw errors in libnvidia-tls.550.78
Summary: Browsing SMB causes kioslave5 to throw errors in libnvidia-tls.550.78
Status: RESOLVED UPSTREAM
Alias: None
Product: dolphin
Classification: Applications
Component: general (show other bugs)
Version: 23.08.5
Platform: Ubuntu Linux
: NOR normal
Target Milestone: ---
Assignee: Dolphin Bug Assignee
URL:
Keywords:
: 493736 (view as bug list)
Depends on:
Blocks:
 
Reported: 2024-05-11 16:34 UTC by Hugh Phoenix-Hulme
Modified: 2024-10-07 20:06 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Hugh Phoenix-Hulme 2024-05-11 16:34:04 UTC
SUMMARY


STEPS TO REPRODUCE
1. Install nvidia driver 550.78
2. Open Dolphin
3. Browse to SMB

OBSERVED RESULT

The Dolphin tab displays the message "The process for the smb://a.b.c.d protocol died unexpectedly."
Crash report appears in systray: "kioslave5 Closed Unexpectedly."
KDE Crash Handler reports this Developer Information:

Application: kioslave5 (kioslave5), signal: Segmentation fault

[KCrash Handler]
#4  0x00007a932e25c618 in ?? () from /lib/x86_64-linux-gnu/libnvidia-tls.so.550.78
#5  0x732e36312d465455 in ?? ()
#6  0x00007a9331e3006f in __gconv_transform_internal_ascii (step=0xec81481574d3d1, data=0x48f0e08348ca2918, inptrp=0x89480000098be8e7, inend=0x7ffc9caa2290 "@#\252\234\374\177", outbufstart=0xffff24b1e8e78948, irreversible=0x8948ffff2723e8c7, do_flush=1401505809, consume_incomplete=726164680) at ../iconv/skeleton.c:547
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
[Inferior 1 (process 1552475) detached]


EXPECTED RESULT

None of the above.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma:
(available in About System)
KDE Plasma Version: 5.27.11
KDE Frameworks Version: 5.115.0
Qt Version: 5.15.13

ADDITIONAL INFORMATION

libnvidia-tls.so is for Thread Local Storage. Renaming it to prevent it being loaded solves the problem, but why is it being loaded?

This seems like a pretty terrible scenario. Some external component is causing undesirable behaviour, but when that component is unavailable, everything works. So literally anything has the potential to break kioslave5. Should kioslave5 be ignoring exceptions while trying to load libraries at this point? Is there a way to blacklist libraries so kioslave5 doesn't try to load them? (I doubt I can get away with removing the thread local storage lib systemwide - I could try it, but I don't expect it'll be pretty.)
Comment 1 TraceyC 2024-10-01 19:11:15 UTC
*** Bug 493736 has been marked as a duplicate of this bug. ***
Comment 2 TraceyC 2024-10-01 19:12:22 UTC
Confirmed as there is at least one other report now

Also see https://bugs.kde.org/show_bug.cgi?id=451050 which is not specific to the nVidia driver
Comment 3 Emil 2024-10-01 20:04:28 UTC
(In reply to TraceyC from comment #2)
> Confirmed as there is at least one other report now
> 
> Also see https://bugs.kde.org/show_bug.cgi?id=451050 which is not specific
> to the nVidia driver

The behavior there is really quite different though. The entire application crashes and only after entering credentials. I don't even get that far.
Comment 4 Hugh Phoenix-Hulme 2024-10-01 22:51:44 UTC
I don't get as far as credentials.

For me this occurs with a Synology NAS (the same as the other referenced issue) but also with an Ubuntu server. Synology NAS allows guest on my LAN, Ubuntu server has my public key.

Still occurs with nvidia 550.120.
Comment 5 TraceyC 2024-10-02 14:43:50 UTC
*** Bug 493736 has been marked as a duplicate of this bug. ***
Comment 6 Emil 2024-10-02 16:36:39 UTC
I just encountered the very same backtrace when trying to launch KiCad. Also with driver version 470 (and possibly others between 470 and 535, I only tested 470 and 535 upwards) both this as well as the problem with KiCad disappear. Nvidia seems to be at fault here.
I reported this to NVIDIA (https://developer.nvidia.com/bugs/4887556). I'm not sure if anyone except me and NVIDIA can access this though...
Comment 7 Emil 2024-10-02 16:39:04 UTC
(In reply to Hugh Phoenix-Hulme from comment #4)

> Still occurs with nvidia 550.120.

Also on 560.35.03
Comment 8 Hugh Phoenix-Hulme 2024-10-02 19:14:02 UTC
(In reply to Emil from comment #6)
> I just encountered the very same backtrace when trying to launch KiCad. Also
> with driver version 470 (and possibly others between 470 and 535, I only
> tested 470 and 535 upwards) both this as well as the problem with KiCad
> disappear. Nvidia seems to be at fault here.

Was it still kioslave that threw the exception?

When I try to run it KiCad throws a segfault with no stacktrace, unless I run it with `valgrind -v kicad` and then it doesn't segfault...

> I reported this to NVIDIA (https://developer.nvidia.com/bugs/4887556). I'm
> not sure if anyone except me and NVIDIA can access this though...

I can't. It tells me that if I want to access it, I have to be a member of "one of the following programmes" but then lists nothing.
Comment 9 Emil 2024-10-03 09:55:41 UTC
(In reply to Hugh Phoenix-Hulme from comment #8)
> (In reply to Emil from comment #6)
> > I just encountered the very same backtrace when trying to launch KiCad. Also
> > with driver version 470 (and possibly others between 470 and 535, I only
> > tested 470 and 535 upwards) both this as well as the problem with KiCad
> > disappear. Nvidia seems to be at fault here.
> 
> Was it still kioslave that threw the exception?

No, sorry. Just the libnvidia-tls error is the same:
```
Thread 1 (Thread 0x73c7762e6d40 (LWP 9918)):
#0  0x000073c776119618 in ??? () at /lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03
#1  0x732e32332d465455 in ??? ()
#2  0x000073c77863006f in __gconv_transform_internal_ascii (step=0xec81481574d3d1, data=0x48f0e08348ca2918, inptrp=0x89480000098be8e7, inend=0x7ffcb3cdbad0 "\200\273ͳ\374\177", outbufstart=0xffff24b1e8e78948, irreversible=0x8948ffff2723e8c7, do_flush=1401505809, consume_incomplete=726164680) at ../iconv/skeleton.c:547
        outerr = 0x8b486774d2854800 <error: Cannot access memory at address 0x8b486774d2854800>
        result = <optimized out>
        loop_irreversible = <optimized out>
        inptr = <optimized out>
        outstart = 0x6e672d78756e696c <error: Cannot access memory at address 0x6e672d78756e696c>
        lirreversiblep = 0x294800000fff25eb
        outbuf = <optimized out>
        outend = 0x2f766e6f63672f75 <error: Cannot access memory at address 0x2f766e6f63672f75>
        lirreversible = 1889844938946
        next_step = 0xec81481574d439
        next_data = 0x48f0e08348ca2948
        fct = 0x8948e6894cfa894c
        status = <optimized out>
        __PRETTY_FUNCTION__ = "__gconv_transform_internal_ascii"
        done_reset = <optimized out>
```
(I got this from a curedump by KiCad)

> > I reported this to NVIDIA (https://developer.nvidia.com/bugs/4887556). I'm
> > not sure if anyone except me and NVIDIA can access this though...
> 
> I can't. It tells me that if I want to access it, I have to be a member of
> "one of the following programmes" but then lists nothing.

Thats weird, well I got a reply asking for for more information which I just provided.
Comment 10 Emil 2024-10-04 05:54:59 UTC
NVIDIA: "Thank you for the additional information and the steps. We can reproduce this failure on our systems with KiCad 8.0 installed from the PPA. This is under investigation."
Comment 11 Hugh Phoenix-Hulme 2024-10-04 06:52:44 UTC
> consume_incomplete=726164680) at ../iconv/skeleton.c:547

This is the same call site, I guess we'll see if nvidia determine if it's their code or not. I can't tell if it's a glibc issue, an nvidia issue, or an alike issue in both kioslave and KiCad.
Comment 12 Emil 2024-10-04 13:30:16 UTC
New response from the NVIDIA people:
> As a workaround, can you please try to set __GL_CONSTANT_FRAME_RATE_HINT=3 ?
Adding this to my `/etc/environment` file worked for me.
Comment 13 Hugh Phoenix-Hulme 2024-10-04 16:35:44 UTC
(In reply to Emil from comment #12)
> New response from the NVIDIA people:
> > As a workaround, can you please try to set __GL_CONSTANT_FRAME_RATE_HINT=3 ?
> Adding this to my `/etc/environment` file worked for me.

Thanks for the update! That works for me for both Dolphin and KiCad.

This should probably be closed but I don't know if there's a process. @TraceyC will know. There might be implications for it being closed when others could still experience and report the issue (until nvidia fix it)
Comment 14 Emil 2024-10-04 17:15:52 UTC
Yeah, I also asked when/if we can expect an actual fix. Still waiting for a response on this though.
Comment 15 Emil 2024-10-07 16:58:07 UTC
Sorry if this is the wrong place for this but am I the only one who (in now working KiCad) is unable to open any schematic's now with a different nvidia related error on libnvidia-glcore?
Comment 16 TraceyC 2024-10-07 20:06:31 UTC
There seem to be two different issues being discussed here. The first, and what this bug is about, is errors preventing a user from browsing SMB shares, related to the nVidia drivers, with the specific backtrace in the original report. 
The crash does point toward the nVidia driver (/lib/x86_64-linux-gnu/libnvidia-tls.so.550.78)
Since there's now an open report with nVidia, and they are working on a fix, I'll close this bug report out.
For reference I can't see that bug report on the nVidia tracker either, I see the same thing as Emil.

The second issue is KiCad being unable to open any schematic with a different nVidia related error on libnvidia-glcore.
The only way that would be considered the same as this report is if the backtrace is identical. If the backtrace is different, and the crash can be reproduced, please open a new bug report and include the backtrace.