[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1107827: https: ./methods/connect.cc:892: virtual bool TlsFd::HasPending(): Assertion `ssl' failed.



Package: apt
Version: 3.0.2
Severity: normal

Hi,

I'm upgrading a system from bookworm to trixie:
After changing the sources.list and an apt-get update, I install dpkg
and apt from the target suite, and then run an apt-get dist-upgrade.

During the fetching process of that dist-upgrade, https fails:
 https: ./methods/connect.cc:892: virtual bool TlsFd::HasPending(): Assertion `ssl' failed.
 E: Method https has died unexpectedly!
 E: Sub-process https received signal 6.

So this is with a new apt (and its direct dependencies), but the rest of
the system is still a bookworm.

It's reproducible; not quite all the time, but reasonably often
  apt-get clean -y; apt-get  dist-upgrade -d -y
results in that assertion error.

This is the backtrace:

Program terminated with signal SIGABRT, Aborted.
#0  0x00007f2520c9e95c in ?? () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) bt
#0  0x00007f2520c9e95c in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007f2520c49cc2 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x00007f2520c324ac in abort () from /lib/x86_64-linux-gnu/libc.so.6
#3  0x00007f2520c32420 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#4  0x000055e09ec9c7de in TlsFd::HasPending (this=0x55e0c752a6c0) at ./methods/connect.cc:890
#5  TlsFd::HasPending (this=0x55e0c752a6c0) at ./methods/connect.cc:890
#6  0x000055e09eca025e in HttpServerState::Go (this=this@entry=0x55e0c73a82e0, ToFile=ToFile@entry=true, Req=...) at ./methods/http.cc:774
#7  0x000055e09eca085b in HttpServerState::RunData (this=0x55e0c73a82e0, Req=...) at ./methods/http.cc:635
#8  0x000055e09ecb7689 in BaseHttpMethod::Loop (this=this@entry=0x7ffc66ccaf90) at ./methods/basehttp.cc:781
#9  0x000055e09ec96c4e in main (argv=<optimized out>) at ./methods/http.cc:1051


and a bt full:

(gdb) bt full
#0  0x00007f2520c9e95c in ?? () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#1  0x00007f2520c49cc2 in raise () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#2  0x00007f2520c324ac in abort () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#3  0x00007f2520c32420 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#4  0x000055e09ec9c7de in TlsFd::HasPending (this=0x55e0c752a6c0) at ./methods/connect.cc:890
        buf = <optimized out>
        __PRETTY_FUNCTION__ = <optimized out>
#5  TlsFd::HasPending (this=0x55e0c752a6c0) at ./methods/connect.cc:890
        buf = 0 '\000'
        __PRETTY_FUNCTION__ = <optimized out>
#6  0x000055e09eca025e in HttpServerState::Go (this=this@entry=0x55e0c73a82e0, ToFile=ToFile@entry=true, Req=...) at ./methods/http.cc:774
        ServerPending = <optimized out>
        rfds = {fds_bits = {8, 0 <repeats 15 times>}}
        wfds = {fds_bits = {16, 0 <repeats 15 times>}}
        MaxFd = <optimized out>
        tv = {tv_sec = 0, tv_usec = 0}
        Res = <optimized out>
        __d = <optimized out>
        __d = <optimized out>
#7  0x000055e09eca085b in HttpServerState::RunData (this=0x55e0c73a82e0, Req=...) at ./methods/http.cc:635
        result = <optimized out>
#8  0x000055e09ecb7689 in BaseHttpMethod::Loop (this=this@entry=0x7ffc66ccaf90) at ./methods/basehttp.cc:781
        Result = <optimized out>
        times = {{tv_sec = 1734098919, tv_usec = 0}, {tv_sec = 1734098919, tv_usec = 0}}
        Result = <optimized out>
        Req = {Major = 1, Minor = 1, Result = 200,
          Code = " OK\000https", '\000' <repeats 11 times>, "0\254\314f\374\177", '\000' <repeats 26 times>, "P\254\314f\374\177", '\000' <repeats 26 times>, "\200CS\307\340U\000\000\020\000\000\000\000\000\000\000\036", '\000' <repeats 15 times>, "0*Q\307\340U\000\000:\000\000\000\000\000\000\000:\000\000\000\000\000\000\000ATION=C\000\000\000\000\000EMENT=C;LC_IELEPHONE=C;LC_MEC_ADDRESS=C;LC_T", '\000' <repeats 112 times>..., TotalFileSize = 69360, DownloadSize = 69360, JunkSize = 0, StartPos = 0, MaximumSize = 1464364, Date = 1734098616,
          haveContent = HaveContent::TRI_TRUE, Encoding = RequestState::Stream, State = RequestState::Data, Location = "", RetryAfter = 0, File = <incomplete type>, Owner = 0x7ffc66ccaf90, Server = 0x55e0c73a82e0}
        Res = <incomplete type>
        FailCounter = <optimized out>
#9  0x000055e09ec96c4e in main (argv=<optimized out>) at ./methods/http.cc:1051
        Binary = ""
(gdb)


This happens with a single source in my sources.lists{,.d}:
  deb https://debian.conova.eu/debian trixie main

Note that this mirror is close and fast, with RTTs sub 1ms, so triggering races
is a possibility.

Cheers,
weasel
-- 
                            |  .''`.       ** Debian **
      Peter Palfrader       | : :' :      The  universal
 https://www.palfrader.org/ | `. `'      Operating System
                            |   `-    https://www.debian.org/


Reply to: