Freeradius crashes with SIGABRT
Daniel Feuchtinger
daniel.feuchtinger at lrz.de
Wed Dec 4 14:24:44 CET 2019
Am 04.12.19 um 13:05 schrieb Daniel Feuchtinger:
> The first run crashed after a few minutes (see AddressSanitizer output below),
> a second run with higher max_requests still runs without a crash
> for a few hours now. I guess there shouldn't be a crash with
> double-free, even if max_requests is to low?
The issue is not related to max_requests, but maybe to
threading? With -s the server run stable for some
hours, without -s it crashes after minutes.
The asan output looks the same as before.
>
> =================================================================
> ==115708==ERROR: AddressSanitizer: attempting double-free on 0x60b0001bbab0 in thread T0:
> #0 0x7f7ee2477fb0 in __interceptor_free (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xe8fb0)
> #1 0x7f7ee1e825d2 in _tc_free_internal ../talloc.c:1201
> #2 0x7f7ee1e8243f in _tc_free_children_internal ../talloc.c:1646
> #3 0x7f7ee1e8243f in _tc_free_internal ../talloc.c:1163
> #4 0x7f7ee1e8243f in _tc_free_children_internal ../talloc.c:1646
> #5 0x7f7ee1e8243f in _tc_free_internal ../talloc.c:1163
> #6 0x7f7ee1e8243f in _tc_free_children_internal ../talloc.c:1646
> #7 0x7f7ee1e8243f in _tc_free_internal ../talloc.c:1163
> #8 0x7f7ee1e7d347 in _tc_free_children_internal ../talloc.c:1646
> #9 0x7f7ee1e7d347 in _tc_free_internal ../talloc.c:1163
> #10 0x7f7ee1e7d347 in _talloc_free_internal ../talloc.c:1227
> #11 0x7f7ee1e7d347 in _talloc_free ../talloc.c:1769
> #12 0x5594dc01a3cd in request_free src/main/process.c:602
> #13 0x5594dc01a3cd in request_free src/main/process.c:587
> #14 0x5594dc0206fc in request_done src/main/process.c:897
> #15 0x5594dc024ac0 in request_receive src/main/process.c:1765
> #16 0x5594dbfe7c3b in auth_socket_recv src/main/listen.c:1597
> #17 0x5594dc01a775 in event_socket_handler src/main/process.c:4869
> #18 0x7f7ee22b1988 in fr_event_loop src/lib/event.c:649
> #19 0x5594dc031734 in radius_event_process src/main/process.c:5954
> #20 0x5594dbfc7d33 in main src/main/radiusd.c:626
> #21 0x7f7ee197209a in __libc_start_main ../csu/libc-start.c:308
> #22 0x5594dbfc8979 in _start (/usr/sbin/freeradius+0x57979)
>
> 0x60b0001bbab0 is located 0 bytes inside of 111-byte region [0x60b0001bbab0,0x60b0001bbb1f)
> freed by thread T0 here:
> ==115708==AddressSanitizer CHECK failed: ../../../../src/libsanitizer/sanitizer_common/sanitizer_stackdepotbase.h:140 "((id & (((u32)-1) >> kReservedBits))) == ((id))" (0x6a15fa73, 0xea15fa73)
> #0 0x7f7ee2482fa5 (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xf3fa5)
> #1 0x7f7ee249df39 in __sanitizer::CheckFailed(char const*, int, char const*, unsigned long long, unsigned long long) (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x10ef39)
> #2 0x7f7ee24982af (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x1092af)
> #3 0x7f7ee23bc1ec (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x2d1ec)
> #4 0x7f7ee23bd60d (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x2e60d)
> #5 0x7f7ee23bdc2f (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x2ec2f)
> #6 0x7f7ee247fee3 (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xf0ee3)
> #7 0x7f7ee23bacc4 (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x2bcc4)
> #8 0x7f7ee2477f8a in __interceptor_free (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xe8f8a)
> #9 0x7f7ee1e825d2 in _tc_free_internal ../talloc.c:1201
> #10 0x7f7ee1e8243f in _tc_free_children_internal ../talloc.c:1646
> #11 0x7f7ee1e8243f in _tc_free_internal ../talloc.c:1163
> #12 0x7f7ee1e8243f in _tc_free_children_internal ../talloc.c:1646
> #13 0x7f7ee1e8243f in _tc_free_internal ../talloc.c:1163
> #14 0x7f7ee1e8243f in _tc_free_children_internal ../talloc.c:1646
> #15 0x7f7ee1e8243f in _tc_free_internal ../talloc.c:1163
> #16 0x7f7ee1e7d347 in _tc_free_children_internal ../talloc.c:1646
> #17 0x7f7ee1e7d347 in _tc_free_internal ../talloc.c:1163
> #18 0x7f7ee1e7d347 in _talloc_free_internal ../talloc.c:1227
> #19 0x7f7ee1e7d347 in _talloc_free ../talloc.c:1769
> #20 0x5594dc01a3cd in request_free src/main/process.c:602
> #21 0x5594dc01a3cd in request_free src/main/process.c:587
> #22 0x5594dc0206fc in request_done src/main/process.c:897
> #23 0x5594dc024ac0 in request_receive src/main/process.c:1765
> #24 0x5594dbfe7c3b in auth_socket_recv src/main/listen.c:1597
> #25 0x5594dc01a775 in event_socket_handler src/main/process.c:4869
> #26 0x7f7ee22b1988 in fr_event_loop src/lib/event.c:649
> #27 0x5594dc031734 in radius_event_process src/main/process.c:5954
> #28 0x5594dbfc7d33 in main src/main/radiusd.c:626
> #29 0x7f7ee197209a in __libc_start_main ../csu/libc-start.c:308
> #30 0x5594dbfc8979 in _start (/usr/sbin/freeradius+0x57979)
>
>
>
>
>
> Am 06.03.19 um 23:17 schrieb Alan DeKok:
>>
>> Another alternative is to use LLVM. If you install the LLVM RPM, you can then build FreeRADIUS with some more options.
>>
>> 1) install LLVM
>> 2) grab the 3.0.18 source (or the source from GitHub)
>> 3) do: CC=clang ./configure --prefix=/opt/freeradius ... args ...
>>
>> I think the name of the compiler on Suse is "clang". If not, you'll have to find that out
>>
>> You're best to put this build into a unique directory, so it's easy to get rid of it later.
>>
>> 4) Edit "Make.inc", and look for the line "CFLAGS = ..." add this:
>>
>> -fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls -fsanitize-address-use-after-scope
>>
>> 5) run "make; make install"
>>
>> You can then run that version with some extra environment variables:
>>
>> export ASAN_SYMBOLIZER_PATH="/usr/local/opt/llvm/bin/llvm-symbolizer"
>>
>> You'll have to find out where that executable is located...
>>
>> export ASAN_OPTIONS="malloc_context_size=50 detect_leaks=1 symbolize=1"
>>
>> Then run FreeRADIUS: /usr/freeradius/sbin/radiusd -f -d /etc/raddb
>>
>> With some luck, the address sanitizer may find the issue. Note that the server will run much slower than normal, but that's likely fine.
>>
>> These issues are very, very, difficult to track down without tools like the address sanitizer. We're using that in the v4 / master branch, and it's a huge help.
>>
>> Alan DeKok.
>>
>>
>> -
>> List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
>>
>
>
>
> -
> List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
>
--
Daniel Feuchtinger
Leibniz-Rechenzentrum
Boltzmannstraße 1
D-85748 Garching b. München
Tel. 089 35831 8820
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 6026 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.freeradius.org/pipermail/freeradius-users/attachments/20191204/00c39ce7/attachment-0001.bin>
More information about the Freeradius-Users
mailing list