Bug 2119478

Summary: aria2 coredumping on Fedora Linux in aria2::MultiUrlRequestInfo
Product: [Fedora] Fedora Reporter: Lonni J Friedman <netllama>
Component: aria2Assignee: Neil Hanlon <neil>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: 37CC: athmanem, gbcox, neil
Target Milestone: ---Flags: neil: needinfo-
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: aria2-1.36.0-6.fc39 aria2-1.36.0-6.fc38 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-11-06 01:30:36 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Lonni J Friedman 2022-08-18 16:05:23 UTC
Description of problem:
aria2 is crashing when trying to view the in-progress downloads managed by its daemon

Version-Release number of selected component (if applicable):
1.35

How reproducible:
Intermittent


Steps to Reproduce:
1.run aria2 in server/daemon mode
2.start several torrents to download
3.attempt to view the status of the torrents
4.crash

Actual results:
segfault/coredump


Expected results:
no crash


Additional info:
Coredump backtrace is here:
```
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x00007f32adca1b63 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#2  0x00007f32adc552a6 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3  0x00007f32adc287f3 in __GI_abort () at abort.c:79
#4  0x0000556cf4000f18 in std::__replacement_assert (__file=<optimized out>, __line=<optimized out>, __function=<optimized out>, __condition=<optimized out>)
    at /usr/include/c++/11/x86_64-redhat-linux/bits/c++config.h:2660
#5  0x0000556cf4060ae6 in std::array<unsigned char, 4096ul>::operator[] (this=<optimized out>, __n=<optimized out>) at /usr/include/c++/11/array:186
#6  std::array<unsigned char, 4096ul>::operator[] (__n=<optimized out>, this=0x7ffefd6d2f70) at /usr/include/c++/11/array:186
#7  aria2::GZipEncoder::encode[abi:cxx11](unsigned char const*, unsigned long, int) (this=0x7ffefd6d4010, in=<optimized out>, length=<optimized out>, flush=4)
    at /usr/src/debug/aria2-1.35.0-6.fc35.x86_64/src/GZipEncoder.cc:90
#8  0x0000556cf4060b67 in aria2::GZipEncoder::str[abi:cxx11]() (this=0x7ffefd6d4010) at /usr/src/debug/aria2-1.35.0-6.fc35.x86_64/src/GZipEncoder.cc:100
#9  0x0000556cf404a057 in aria2::rpc::toJson (res=..., callback="", gzip=<optimized out>) at /usr/src/debug/aria2-1.35.0-6.fc35.x86_64/src/RpcResponse.cc:188
#10 0x0000556cf4112e11 in aria2::HttpServerBodyCommand::sendJsonRpcResponse (this=0x556d03102dd0, res=..., callback="")
    at /usr/src/debug/aria2-1.35.0-6.fc35.x86_64/src/HttpServerBodyCommand.cc:108
#11 0x0000556cf4116b40 in aria2::HttpServerBodyCommand::execute (this=0x556d03102dd0) at /usr/src/debug/aria2-1.35.0-6.fc35.x86_64/src/HttpServerBodyCommand.cc:287
#12 0x0000556cf40a6b66 in aria2::(anonymous namespace)::executeCommand (commands=std::deque with 186 elements = {...}, statusFilter=aria2::Command::STATUS_ACTIVE)
    at /usr/src/debug/aria2-1.35.0-6.fc35.x86_64/src/DownloadEngine.cc:139
#13 0x0000556cf3ffbe21 in aria2::DownloadEngine::run (oneshot=<optimized out>, this=0x556cf56eeee0)
    at /usr/src/debug/aria2-1.35.0-6.fc35.x86_64/src/DownloadEngine.cc:183
#14 aria2::MultiUrlRequestInfo::execute (this=0x556cf56eee10) at /usr/src/debug/aria2-1.35.0-6.fc35.x86_64/src/MultiUrlRequestInfo.cc:361
#15 aria2::main (argv=<optimized out>, argc=<optimized out>) at /usr/src/debug/aria2-1.35.0-6.fc35.x86_64/src/main.cc:78
#16 main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/aria2-1.35.0-6.fc35.x86_64/src/main.cc:91
```

Condensed backtrace:
```
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x00007f32adca1b63 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#2  0x00007f32adc552a6 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3  0x00007f32adc287f3 in __GI_abort () at abort.c:79
#4  0x0000556cf4000f18 in std::__replacement_assert (__file=<optimized out>, __line=<optimized out>, __function=<optimized out>, __condition=<optimized out>)
    at /usr/include/c++/11/x86_64-redhat-linux/bits/c++config.h:2660
#5  0x0000556cf4060ae6 in std::array<unsigned char, 4096ul>::operator[] (this=<optimized out>, __n=<optimized out>) at /usr/include/c++/11/array:186
#6  std::array<unsigned char, 4096ul>::operator[] (__n=<optimized out>, this=0x7ffefd6d2f70) at /usr/include/c++/11/array:186
#7  aria2::GZipEncoder::encode[abi:cxx11](unsigned char const*, unsigned long, int) (this=0x7ffefd6d4010, in=<optimized out>, length=<optimized out>, flush=4)
    at /usr/src/debug/aria2-1.35.0-6.fc35.x86_64/src/GZipEncoder.cc:90
#8  0x0000556cf4060b67 in aria2::GZipEncoder::str[abi:cxx11]() (this=0x7ffefd6d4010) at /usr/src/debug/aria2-1.35.0-6.fc35.x86_64/src/GZipEncoder.cc:100
#9  0x0000556cf404a057 in aria2::rpc::toJson (res=..., callback="", gzip=<optimized out>) at /usr/src/debug/aria2-1.35.0-6.fc35.x86_64/src/RpcResponse.cc:188
#10 0x0000556cf4112e11 in aria2::HttpServerBodyCommand::sendJsonRpcResponse (this=0x556d03102dd0, res=..., callback="")
    at /usr/src/debug/aria2-1.35.0-6.fc35.x86_64/src/HttpServerBodyCommand.cc:108
#11 0x0000556cf4116b40 in aria2::HttpServerBodyCommand::execute (this=0x556d03102dd0) at /usr/src/debug/aria2-1.35.0-6.fc35.x86_64/src/HttpServerBodyCommand.cc:287
#12 0x0000556cf40a6b66 in aria2::(anonymous namespace)::executeCommand (commands=std::deque with 186 elements = {...}, statusFilter=aria2::Command::STATUS_ACTIVE)
    at /usr/src/debug/aria2-1.35.0-6.fc35.x86_64/src/DownloadEngine.cc:139
#13 0x0000556cf3ffbe21 in aria2::DownloadEngine::run (oneshot=<optimized out>, this=0x556cf56eeee0)
    at /usr/src/debug/aria2-1.35.0-6.fc35.x86_64/src/DownloadEngine.cc:183
#14 aria2::MultiUrlRequestInfo::execute (this=0x556cf56eee10) at /usr/src/debug/aria2-1.35.0-6.fc35.x86_64/src/MultiUrlRequestInfo.cc:361
#15 aria2::main (argv=<optimized out>, argc=<optimized out>) at /usr/src/debug/aria2-1.35.0-6.fc35.x86_64/src/main.cc:78
#16 main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/aria2-1.35.0-6.fc35.x86_64/src/main.cc:91
```

Comment 1 Lonni J Friedman 2022-08-18 16:06:16 UTC
full backtrace:

(gdb) thread apply all bt full

Thread 1 (Thread 0x7f32ade35980 (LWP 2674422)):
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
        tid = <optimized out>
        ret = 0
        pd = <optimized out>
        old_mask = {__val = {140733150215728, 140733150215712, 140733150211440, 140733150211424, 140733150216208, 93926439977233, 140733150211440, 0, 93926440068608, 93926951160992, 93926951163740, 547, 549, 0, 32, 139855655763501}}
        ret = <optimized out>
#1  0x00007f32adca1b63 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
No locals.
#2  0x00007f32adc552a6 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
        ret = <optimized out>
#3  0x00007f32adc287f3 in __GI_abort () at abort.c:79
        save_stage = 1
        act = {__sigaction_handler = {sa_handler = 0x0, sa_sigaction = 0x0}, sa_mask = {__val = {93926440077111, 188, 93926440083056, 93926440035797, 1, 140733150211840, 0, 93926469603424, 140733150216112, 0, 4096, 93926951160992, 139855655780153, 93926784911776, 17179869342, 559903}}, sa_flags = 768, sa_restorer = 0x0}
        sigs = {__val = {32, 11938359503587600128, 4051041740889522176, 11938359503587600128, 93926951163496, 140733150211952, 140733150216208, 140733150216112, 4, 4096, 93926691188176, 139855640590895, 206158430248, 140733150211904, 140733150211712, 11938359503587600128}}
#4  0x0000556cf4000f18 in std::__replacement_assert (__file=<optimized out>, __line=<optimized out>, __function=<optimized out>, __condition=<optimized out>) at /usr/include/c++/11/x86_64-redhat-linux/bits/c++config.h:2660
No locals.
#5  0x0000556cf4060ae6 in std::array<unsigned char, 4096ul>::operator[] (this=<optimized out>, __n=<optimized out>) at /usr/include/c++/11/array:186
        __PRETTY_FUNCTION__ = <optimized out>
#6  std::array<unsigned char, 4096ul>::operator[] (__n=<optimized out>, this=0x7ffefd6d2f70) at /usr/include/c++/11/array:186
        __PRETTY_FUNCTION__ = <optimized out>
#7  aria2::GZipEncoder::encode[abi:cxx11](unsigned char const*, unsigned long, int) (this=0x7ffefd6d4010, in=<optimized out>, length=<optimized out>, flush=4) at /usr/src/debug/aria2-1.35.0-6.fc35.x86_64/src/GZipEncoder.cc:90
        ret = <optimized out>
        produced = <optimized out>
        out = ""
        outbuf = {_M_elems = "\345]m\217\033\267\256\376/\376\234\070\022%QR\276\065\067iz\200\336\066H\n\364\002IP\350\065\353\033\257\275\260\275m\016\212\376\367K\215=\273#g\355lf\374vq\266ͮmr4\363\220\022EJ\244\374\367h\022Gϟ\362'\243\377]\316g\213\233\060z>\202\061\033=\031-\322\362v\272\032=\177\377\367\310OVy\222\246\261\320@\305$\023\252 \224\310J\005\211,\310\020 \vo=7\322('\255\312<2D\037\320\005EW\b\t\034\270QZ[\351%*\021\205֚\263\250L\222\364\067\a\226\030\343\231\t\351@\030\310\\(\026\263\b\250 c0\022\\4*\240\244\066\263w:g\037u\246\227\345W\216\071k-\242\313"...}
#8  0x0000556cf4060b67 in aria2::GZipEncoder::str[abi:cxx11]() (this=0x7ffefd6d4010) at /usr/src/debug/aria2-1.35.0-6.fc35.x86_64/src/GZipEncoder.cc:100
No locals.
#9  0x0000556cf404a057 in aria2::rpc::toJson (res=..., callback="", gzip=<optimized out>) at /usr/src/debug/aria2-1.35.0-6.fc35.x86_64/src/RpcResponse.cc:188
        o = {strm_ = 0x556cf5db1060, internalBuf_ = "\037\213\b\000\000\000\000\000\000\003"}
#10 0x0000556cf4112e11 in aria2::HttpServerBodyCommand::sendJsonRpcResponse (this=0x556d03102dd0, res=..., callback="") at /usr/src/debug/aria2-1.35.0-6.fc35.x86_64/src/HttpServerBodyCommand.cc:108
        notauthorized = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--
        gzip = <optimized out>
        responseData = <error reading variable: Cannot create a lazy string with address 0x0, and a non-zero length.>
#11 0x0000556cf4116b40 in aria2::HttpServerBodyCommand::execute (this=0x556d03102dd0) at /usr/src/debug/aria2-1.35.0-6.fc35.x86_64/src/HttpServerBodyCommand.cc:287
        res = {param = std::unique_ptr<aria2::ValueBase> = {get() = 0x556d205b36f0}, id = std::unique_ptr<aria2::ValueBase> = {get() = 0x556d11f15ee0}, code = 0, authorized = aria2::rpc::RpcResponse::AUTHORIZED}
        callback = ""
        json = std::unique_ptr<aria2::ValueBase> = {get() = 0x556d006528c0}
        error = <optimized out>
        jsondict = <optimized out>
        reqPath = "/jsonrpc"
        query = ""
#12 0x0000556cf40a6b66 in aria2::(anonymous namespace)::executeCommand (commands=std::deque with 186 elements = {...}, statusFilter=aria2::Command::STATUS_ACTIVE) at /usr/src/debug/aria2-1.35.0-6.fc35.x86_64/src/DownloadEngine.cc:139
        com = std::unique_ptr<aria2::Command> = {get() = 0x556d03102dd0}
        i = 0
        max = 187
#13 0x0000556cf3ffbe21 in aria2::DownloadEngine::run (oneshot=<optimized out>, this=0x556cf56eeee0) at /usr/src/debug/aria2-1.35.0-6.fc35.x86_64/src/DownloadEngine.cc:183
        ghrf = <optimized out>
        ghrf = <optimized out>
#14 aria2::MultiUrlRequestInfo::execute (this=0x556cf56eee10) at /usr/src/debug/aria2-1.35.0-6.fc35.x86_64/src/MultiUrlRequestInfo.cc:361
        returnValue = <optimized out>
        returnValue = <optimized out>
        e = <optimized out>
        logger = <optimized out>
#15 aria2::main (argv=<optimized out>, argc=<optimized out>) at /usr/src/debug/aria2-1.35.0-6.fc35.x86_64/src/main.cc:78
        context = {reqinfo = std::shared_ptr<aria2::MultiUrlRequestInfo> (use count 1, weak count 0) = {get() = 0x556cf56eee10}}
        exitStatus = aria2::error_code::FINISHED
        context = <optimized out>
        exitStatus = <optimized out>
#16 main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/aria2-1.35.0-6.fc35.x86_64/src/main.cc:91
        platform = <optimized out>
        r = <optimized out>

Comment 2 Othman Madjoudj 2022-10-16 14:51:44 UTC
Is this still reproducible with 1.36.0? this issue was reported against 1.35.0

Comment 3 Ben Cotton 2023-04-25 17:47:47 UTC
This message is a reminder that Fedora Linux 36 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora Linux 36 on 2023-05-16.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
'version' of '36'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, change the 'version' 
to a later Fedora Linux version. Note that the version field may be hidden.
Click the "Show advanced fields" button if you do not see it.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora Linux 36 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora Linux, you are encouraged to change the 'version' to a later version
prior to this bug being closed.

Comment 4 Gerald Cox 2023-10-28 18:19:18 UTC
Yes, this has been occurring with aria2 1.36.0

There is now a patch that has been incorporated into the master mentioned in the upstream bug. 

I have built myself and tested and it resolves the issue.

Since there is no indication when Aria2 1.37 will be released can we get the patch applied
to 1.36?  If you need a co-maintainer to assist, please add me and I'll get the patch applied.
gbcox

Thanks much!

Comment 5 Fedora Update System 2023-10-28 23:56:03 UTC
FEDORA-2023-cf4d83e6bb has been submitted as an update to Fedora 38. https://bodhi.fedoraproject.org/updates/FEDORA-2023-cf4d83e6bb

Comment 6 Fedora Update System 2023-10-28 23:56:21 UTC
FEDORA-2023-5a7040039f has been submitted as an update to Fedora 39. https://bodhi.fedoraproject.org/updates/FEDORA-2023-5a7040039f

Comment 7 Neil Hanlon 2023-10-28 23:58:47 UTC
Hi Gerald,

Thank you very much for pinging me on this. I've gone ahead and added the patch and sent it to build for stable branches as well as rawhide.

I'm still more than happy to add you as a comaintainer, if you'd like--just let me know!

Best,
Neil

Comment 8 Fedora Update System 2023-10-29 01:21:46 UTC
FEDORA-2023-5a7040039f has been pushed to the Fedora 39 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2023-5a7040039f`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2023-5a7040039f

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 9 Fedora Update System 2023-10-29 01:55:11 UTC
FEDORA-2023-cf4d83e6bb has been pushed to the Fedora 38 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2023-cf4d83e6bb`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2023-cf4d83e6bb

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 10 Gerald Cox 2023-10-29 12:44:05 UTC
(In reply to Neil Hanlon from comment #7)
> Hi Gerald,
> 
> Thank you very much for pinging me on this. I've gone ahead and added the
> patch and sent it to build for stable branches as well as rawhide.
> 
> I'm still more than happy to add you as a comaintainer, if you'd like--just
> let me know!
> 
> Best,
> Neil

Thanks for the quick response!  Sure, go ahead an add me.  Thanks again!

Comment 11 Fedora Update System 2023-11-06 01:30:36 UTC
FEDORA-2023-5a7040039f has been pushed to the Fedora 39 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 12 Fedora Update System 2023-11-06 01:36:35 UTC
FEDORA-2023-cf4d83e6bb has been pushed to the Fedora 38 stable repository.
If problem still persists, please make note of it in this bug report.