Re: [ANN] Version 3.0.0-rc0
Hi, (siwtching to -devel)
If you are planning on deploying 3.0 and have an existing 2.x.x configuration you were planning to migrate when the 3.0 is released, now would be a good time to try that, and to report any issues or problematic behaviour changes you notice.
In recent days, it seems to be my sisyphos' job to try and shutdown FreeRADIUS cleanly. After falling into SEGVs on 2.x.x repeatedly, I thought I'd try 3.0 because all is shiny, new, better and different. Look what I got: Ready to process requests. Program received signal SIGTERM, Terminated. 0x00007ffff5d84623 in select () from /lib64/libc.so.6 (gdb) c Continuing. Signalled to terminate Exiting normally. rlm_sql (sql-dialup-hash): Removing connection pool rlm_sql (sql-dialup-hash): Closing connection (4) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-dialup-hash): Closing connection (3) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-dialup-hash): Closing connection (2) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-dialup-hash): Closing connection (1) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-dialup-hash): Closing connection (0) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-aai-hash): Removing connection pool rlm_sql (sql-aai-hash): Closing connection (4) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-aai-hash): Closing connection (3) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-aai-hash): Closing connection (2) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-aai-hash): Closing connection (1) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-aai-hash): Closing connection (0) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-null-acct-cops): Removing connection pool rlm_sql (sql-null-acct-cops): Closing connection (2) rlm_sql (sql-null-acct-cops): Closing connection (1) rlm_sql (sql-null-acct-cops): Closing connection (0) rlm_sql (sql-imap-hash): Removing connection pool rlm_sql (sql-imap-hash): Closing connection (4) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-imap-hash): Closing connection (3) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-imap-hash): Closing connection (2) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-imap-hash): Closing connection (1) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-imap-hash): Closing connection (0) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-null-acct-eduroam): Removing connection pool rlm_sql (sql-null-acct-eduroam): Closing connection (2) rlm_sql (sql-null-acct-eduroam): Closing connection (1) rlm_sql (sql-null-acct-eduroam): Closing connection (0) rlm_sql (sql-null-acct-erx): Removing connection pool rlm_sql (sql-null-acct-erx): Closing connection (2) rlm_sql (sql-null-acct-erx): Closing connection (1) rlm_sql (sql-null-acct-erx): Closing connection (0) rlm_sql (sql-null-acct-dialup): Removing connection pool rlm_sql (sql-null-acct-dialup): Closing connection (2) rlm_sql (sql-null-acct-dialup): Closing connection (1) rlm_sql (sql-null-acct-dialup): Closing connection (0) rlm_sql (sql-null-lastusage): Removing connection pool rlm_sql (sql-null-lastusage): Closing connection (2) rlm_sql (sql-null-lastusage): Closing connection (1) rlm_sql (sql-null-lastusage): Closing connection (0) rlm_sql (sql-null-postauth): Removing connection pool rlm_sql (sql-null-postauth): Closing connection (2) rlm_sql (sql-null-postauth): Closing connection (1) rlm_sql (sql-null-postauth): Closing connection (0) rlm_sql (sql-userjabber-hash): Removing connection pool rlm_sql (sql-userjabber-hash): Closing connection (4) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-userjabber-hash): Closing connection (3) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-userjabber-hash): Closing connection (2) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-userjabber-hash): Closing connection (1) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-userjabber-hash): Closing connection (0) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-smtp-hash): Removing connection pool rlm_sql (sql-smtp-hash): Closing connection (4) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-smtp-hash): Closing connection (3) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-smtp-hash): Closing connection (2) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-smtp-hash): Closing connection (1) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-smtp-hash): Closing connection (0) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-null-staff-tacacsaccounting): Removing connection pool rlm_sql (sql-null-staff-tacacsaccounting): Closing connection (2) rlm_sql (sql-null-staff-tacacsaccounting): Closing connection (1) rlm_sql (sql-null-staff-tacacsaccounting): Closing connection (0) rlm_sql (sql-null-acct-vpn): Removing connection pool rlm_sql (sql-null-acct-vpn): Closing connection (2) rlm_sql (sql-null-acct-vpn): Closing connection (1) rlm_sql (sql-null-acct-vpn): Closing connection (0) rlm_sql (sql-webmailsso): Removing connection pool rlm_sql (sql-webmailsso): Closing connection (4) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-webmailsso): Closing connection (3) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-webmailsso): Closing connection (2) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-webmailsso): Closing connection (1) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-webmailsso): Closing connection (0) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-webmailsso-users): Removing connection pool rlm_sql (sql-webmailsso-users): Closing connection (4) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-webmailsso-users): Closing connection (3) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-webmailsso-users): Closing connection (2) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-webmailsso-users): Closing connection (1) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-webmailsso-users): Closing connection (0) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-vpn-hash): Removing connection pool rlm_sql (sql-vpn-hash): Closing connection (4) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-vpn-hash): Closing connection (3) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-vpn-hash): Closing connection (2) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-vpn-hash): Closing connection (1) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-vpn-hash): Closing connection (0) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-eduroam-hash): Removing connection pool rlm_sql (sql-eduroam-hash): Closing connection (4) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-eduroam-hash): Closing connection (3) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-eduroam-hash): Closing connection (2) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-eduroam-hash): Closing connection (1) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-eduroam-hash): Closing connection (0) rlm_sql_mysql: Socket destructor called, closing socket Program received signal SIGSEGV, Segmentation fault. modcallable_free (pc=pc@entry=0x7fffffffe3b8) at src/main/modcall.c:2343 2343 next = loop->next; (gdb) print loop $1 = (modcallable *) 0x2527285345554c41 (gdb) print *loop Cannot access memory at address 0x2527285345554c41 (gdb) Note that this is the EXACT same error I get when trying to shut down the most recent 2.x.x branch. Yes, the same invalid hex pointer. Byte-by-byte. So whatever the problem in 2.x.x is, it has survived the numerous changes in the master branch. Needless to say... anyone wanting to use FreeRADIUS 2.2.1 or 3.0.0 with systemd will suffer from this. I think this is a bit of a showstopper for a 3.0 release. Greetings, Stefan Winter
To provide a single point to test against, the release_3_0_0_rc0 tag has been created.
Features and behaviours changes since release_3_0_0_beta1: * Empty xlat expansions are no longer substituted with "_". * Empty string expansions are no longer treated as failures, though actual failures and invalid operations will continue to bubble up and be translated into return codes. This is a change from 2.x.x where they were ignored. * Update sections support both types of exec, those which use the output of the program to create an attribute value, and those which use the output to create multiple value pairs. * Config item names have now been unified. In most cases the server will tell you the new name of the config item. * rlm_ldap now only registers LDAP-Group for the default instance. It used to register it for every instance which caused inconsistent behaviour. * New raddb structure. See raddb/README.rst for details. * Support for ${.:instance} which returns the instance name of a section and ${.:name} which returns the name of a section. Useful when used with relative paths. * Add support for bulk loading dynamic clients from LDAP. * Don't re-add default symlinks in raddb/sites-enabled/ raddb/mods-enabled/
Bug fixes: * Attribute instance selection [<n>] [#] [*] have been re-added to the xlat parser. * PCRE headers and libraries are now detected in a wider range of locations. * Symbols for PCRE drop in functions are now used in preference to posix functions, previously they weren't and this caused segfaults. * Fixes in the FreeTDS driver to avoid double frees. * Fix list to list copies in update sections. * Fix exec in update statements. * Fix use of double quoted strings in radclient -f files. * Many packaging fixes and cleanups. * Send Access-Rejects when using radsec. * Various radsec fixes to avoid crashes. * -HUP now works again. * Don't wait on execs to finish if they're marked as wait = 'no'. * Remove support for ranges in comparisons with NAS-Port-ID, these were broken, duplicative, and caused crashes. * Don't crash when parsing 64bit integer values from text * Expand ${...} before parsing conditions * Fix foreach * Be more lenient about MS-CHAP identity mismatches.
The tarball is available here: https://github.com/FreeRADIUS/freeradius-server/archive/release_3_0_0_beta1....
Arran Cudbard-Bell <a.cudbardb@freeradius.org> FreeRADIUS Development Team
- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
-- Stefan WINTER Ingenieur de Recherche Fondation RESTENA - Réseau Téléinformatique de l'Education Nationale et de la Recherche 6, rue Richard Coudenhove-Kalergi L-1359 Luxembourg Tel: +352 424409 1 Fax: +352 422473
Ah, yesterday Alan wanted a valgrind --tool=memcheck to see more details. I just did the same on 3.0.0-rc0: rlm_sql_mysql: Socket destructor called, closing socket ==7864== Invalid read of size 8 ==7864== at 0x41EE78: modcallable_free (modcall.c:2343) ==7864== by 0x41EE85: modcallable_free (modcall.c:2344) ==7864== by 0x41EE85: modcallable_free (modcall.c:2344) ==7864== by 0x41EE85: modcallable_free (modcall.c:2344) ==7864== by 0x41B60F: indexed_modcallable_free (modules.c:251) ==7864== by 0x5F2DD68: ??? (in /usr/lib64/libtalloc.so.2.0.8) ==7864== by 0x5F2DB3C: ??? (in /usr/lib64/libtalloc.so.2.0.8) ==7864== by 0x5F29829: _talloc_free (in /usr/lib64/libtalloc.so.2.0.8) ==7864== by 0x41B2E3: free_mainconfig (mainconfig.c:939) ==7864== by 0x40E044: main (radiusd.c:528) ==7864== Address 0x2527285345554c49 is not stack'd, malloc'd or (recently) free'd ==7864== ==7864== ==7864== Process terminating with default action of signal 11 (SIGSEGV) ==7864== General Protection Fault ==7864== at 0x41EE78: modcallable_free (modcall.c:2343) ==7864== by 0x41EE85: modcallable_free (modcall.c:2344) ==7864== by 0x41EE85: modcallable_free (modcall.c:2344) ==7864== by 0x41EE85: modcallable_free (modcall.c:2344) ==7864== by 0x41B60F: indexed_modcallable_free (modules.c:251) ==7864== by 0x5F2DD68: ??? (in /usr/lib64/libtalloc.so.2.0.8) ==7864== by 0x5F2DB3C: ??? (in /usr/lib64/libtalloc.so.2.0.8) ==7864== by 0x5F29829: _talloc_free (in /usr/lib64/libtalloc.so.2.0.8) ==7864== by 0x41B2E3: free_mainconfig (mainconfig.c:939) ==7864== by 0x40E044: main (radiusd.c:528) ==7864== ==7864== HEAP SUMMARY: ==7864== in use at exit: 2,715,808 bytes in 40,555 blocks ==7864== total heap usage: 49,977 allocs, 9,422 frees, 5,336,642 bytes allocated ==7864== ==7864== LEAK SUMMARY: ==7864== definitely lost: 320 bytes in 4 blocks ==7864== indirectly lost: 0 bytes in 0 blocks ==7864== possibly lost: 131 bytes in 1 blocks ==7864== still reachable: 2,715,357 bytes in 40,550 blocks ==7864== suppressed: 0 bytes in 0 blocks ==7864== Rerun with --leak-check=full to see details of leaked memory ==7864== ==7864== For counts of detected and suppressed errors, rerun with: -v ==7864== Use --track-origins=yes to see where uninitialised values come from ==7864== ERROR SUMMARY: 91 errors from 2 contexts (suppressed: 2 from 2) ==7864== could not unlink /tmp/vgdb-pipe-from-vgdb-to-7864-by-root-on-radius-int-1-new.restena.lu ==7864== could not unlink /tmp/vgdb-pipe-to-vgdb-from-7864-by-root-on-radius-int-1-new.restena.lu ==7864== could not unlink /tmp/vgdb-pipe-shared-mem-vgdb-7864-by-root-on-radius-int-1-new.restena.lu Segmentation fault Doesn't reveal much to me :-( Stefan On 17.07.2013 09:14, Stefan Winter wrote:
Hi,
(siwtching to -devel)
If you are planning on deploying 3.0 and have an existing 2.x.x configuration you were planning to migrate when the 3.0 is released, now would be a good time to try that, and to report any issues or problematic behaviour changes you notice.
In recent days, it seems to be my sisyphos' job to try and shutdown FreeRADIUS cleanly.
After falling into SEGVs on 2.x.x repeatedly, I thought I'd try 3.0 because all is shiny, new, better and different. Look what I got:
Ready to process requests.
Program received signal SIGTERM, Terminated. 0x00007ffff5d84623 in select () from /lib64/libc.so.6 (gdb) c Continuing. Signalled to terminate Exiting normally. rlm_sql (sql-dialup-hash): Removing connection pool rlm_sql (sql-dialup-hash): Closing connection (4) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-dialup-hash): Closing connection (3) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-dialup-hash): Closing connection (2) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-dialup-hash): Closing connection (1) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-dialup-hash): Closing connection (0) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-aai-hash): Removing connection pool rlm_sql (sql-aai-hash): Closing connection (4) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-aai-hash): Closing connection (3) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-aai-hash): Closing connection (2) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-aai-hash): Closing connection (1) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-aai-hash): Closing connection (0) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-null-acct-cops): Removing connection pool rlm_sql (sql-null-acct-cops): Closing connection (2) rlm_sql (sql-null-acct-cops): Closing connection (1) rlm_sql (sql-null-acct-cops): Closing connection (0) rlm_sql (sql-imap-hash): Removing connection pool rlm_sql (sql-imap-hash): Closing connection (4) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-imap-hash): Closing connection (3) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-imap-hash): Closing connection (2) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-imap-hash): Closing connection (1) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-imap-hash): Closing connection (0) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-null-acct-eduroam): Removing connection pool rlm_sql (sql-null-acct-eduroam): Closing connection (2) rlm_sql (sql-null-acct-eduroam): Closing connection (1) rlm_sql (sql-null-acct-eduroam): Closing connection (0) rlm_sql (sql-null-acct-erx): Removing connection pool rlm_sql (sql-null-acct-erx): Closing connection (2) rlm_sql (sql-null-acct-erx): Closing connection (1) rlm_sql (sql-null-acct-erx): Closing connection (0) rlm_sql (sql-null-acct-dialup): Removing connection pool rlm_sql (sql-null-acct-dialup): Closing connection (2) rlm_sql (sql-null-acct-dialup): Closing connection (1) rlm_sql (sql-null-acct-dialup): Closing connection (0) rlm_sql (sql-null-lastusage): Removing connection pool rlm_sql (sql-null-lastusage): Closing connection (2) rlm_sql (sql-null-lastusage): Closing connection (1) rlm_sql (sql-null-lastusage): Closing connection (0) rlm_sql (sql-null-postauth): Removing connection pool rlm_sql (sql-null-postauth): Closing connection (2) rlm_sql (sql-null-postauth): Closing connection (1) rlm_sql (sql-null-postauth): Closing connection (0) rlm_sql (sql-userjabber-hash): Removing connection pool rlm_sql (sql-userjabber-hash): Closing connection (4) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-userjabber-hash): Closing connection (3) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-userjabber-hash): Closing connection (2) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-userjabber-hash): Closing connection (1) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-userjabber-hash): Closing connection (0) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-smtp-hash): Removing connection pool rlm_sql (sql-smtp-hash): Closing connection (4) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-smtp-hash): Closing connection (3) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-smtp-hash): Closing connection (2) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-smtp-hash): Closing connection (1) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-smtp-hash): Closing connection (0) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-null-staff-tacacsaccounting): Removing connection pool rlm_sql (sql-null-staff-tacacsaccounting): Closing connection (2) rlm_sql (sql-null-staff-tacacsaccounting): Closing connection (1) rlm_sql (sql-null-staff-tacacsaccounting): Closing connection (0) rlm_sql (sql-null-acct-vpn): Removing connection pool rlm_sql (sql-null-acct-vpn): Closing connection (2) rlm_sql (sql-null-acct-vpn): Closing connection (1) rlm_sql (sql-null-acct-vpn): Closing connection (0) rlm_sql (sql-webmailsso): Removing connection pool rlm_sql (sql-webmailsso): Closing connection (4) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-webmailsso): Closing connection (3) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-webmailsso): Closing connection (2) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-webmailsso): Closing connection (1) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-webmailsso): Closing connection (0) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-webmailsso-users): Removing connection pool rlm_sql (sql-webmailsso-users): Closing connection (4) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-webmailsso-users): Closing connection (3) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-webmailsso-users): Closing connection (2) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-webmailsso-users): Closing connection (1) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-webmailsso-users): Closing connection (0) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-vpn-hash): Removing connection pool rlm_sql (sql-vpn-hash): Closing connection (4) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-vpn-hash): Closing connection (3) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-vpn-hash): Closing connection (2) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-vpn-hash): Closing connection (1) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-vpn-hash): Closing connection (0) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-eduroam-hash): Removing connection pool rlm_sql (sql-eduroam-hash): Closing connection (4) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-eduroam-hash): Closing connection (3) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-eduroam-hash): Closing connection (2) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-eduroam-hash): Closing connection (1) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-eduroam-hash): Closing connection (0) rlm_sql_mysql: Socket destructor called, closing socket
Program received signal SIGSEGV, Segmentation fault. modcallable_free (pc=pc@entry=0x7fffffffe3b8) at src/main/modcall.c:2343 2343 next = loop->next; (gdb) print loop $1 = (modcallable *) 0x2527285345554c41 (gdb) print *loop Cannot access memory at address 0x2527285345554c41 (gdb)
Note that this is the EXACT same error I get when trying to shut down the most recent 2.x.x branch. Yes, the same invalid hex pointer. Byte-by-byte.
So whatever the problem in 2.x.x is, it has survived the numerous changes in the master branch.
Needless to say... anyone wanting to use FreeRADIUS 2.2.1 or 3.0.0 with systemd will suffer from this. I think this is a bit of a showstopper for a 3.0 release.
Greetings,
Stefan Winter
To provide a single point to test against, the release_3_0_0_rc0 tag has been created.
Features and behaviours changes since release_3_0_0_beta1: * Empty xlat expansions are no longer substituted with "_". * Empty string expansions are no longer treated as failures, though actual failures and invalid operations will continue to bubble up and be translated into return codes. This is a change from 2.x.x where they were ignored. * Update sections support both types of exec, those which use the output of the program to create an attribute value, and those which use the output to create multiple value pairs. * Config item names have now been unified. In most cases the server will tell you the new name of the config item. * rlm_ldap now only registers LDAP-Group for the default instance. It used to register it for every instance which caused inconsistent behaviour. * New raddb structure. See raddb/README.rst for details. * Support for ${.:instance} which returns the instance name of a section and ${.:name} which returns the name of a section. Useful when used with relative paths. * Add support for bulk loading dynamic clients from LDAP. * Don't re-add default symlinks in raddb/sites-enabled/ raddb/mods-enabled/
Bug fixes: * Attribute instance selection [<n>] [#] [*] have been re-added to the xlat parser. * PCRE headers and libraries are now detected in a wider range of locations. * Symbols for PCRE drop in functions are now used in preference to posix functions, previously they weren't and this caused segfaults. * Fixes in the FreeTDS driver to avoid double frees. * Fix list to list copies in update sections. * Fix exec in update statements. * Fix use of double quoted strings in radclient -f files. * Many packaging fixes and cleanups. * Send Access-Rejects when using radsec. * Various radsec fixes to avoid crashes. * -HUP now works again. * Don't wait on execs to finish if they're marked as wait = 'no'. * Remove support for ranges in comparisons with NAS-Port-ID, these were broken, duplicative, and caused crashes. * Don't crash when parsing 64bit integer values from text * Expand ${...} before parsing conditions * Fix foreach * Be more lenient about MS-CHAP identity mismatches.
The tarball is available here: https://github.com/FreeRADIUS/freeradius-server/archive/release_3_0_0_beta1....
Arran Cudbard-Bell <a.cudbardb@freeradius.org> FreeRADIUS Development Team
- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/devel.html
-- Stefan WINTER Ingenieur de Recherche Fondation RESTENA - Réseau Téléinformatique de l'Education Nationale et de la Recherche 6, rue Richard Coudenhove-Kalergi L-1359 Luxembourg Tel: +352 424409 1 Fax: +352 422473
Stefan Winter wrote: ...
$1 = (modcallable *) 0x2527285345554c41
Which is %'(SEULI So... there's either a buffer overflow, or a use after free error.
Note that this is the EXACT same error I get when trying to shut down the most recent 2.x.x branch. Yes, the same invalid hex pointer. Byte-by-byte.
Because it's the same configuration.
So whatever the problem in 2.x.x is, it has survived the numerous changes in the master branch.
Needless to say... anyone wanting to use FreeRADIUS 2.2.1 or 3.0.0 with systemd will suffer from this. I think this is a bit of a showstopper for a 3.0 release.
I'll blame your configuration. It's weird! But realistically, it does need to be fixed. If you could narrow it down to a simple configuration (without depending on local config), that would help a lot. Alan DeKok.
Hi,
I'll blame your configuration. It's weird!
Can we settle for "complex"? ;-) And it's SUETLI, right?
But realistically, it does need to be fixed. If you could narrow it down to a simple configuration (without depending on local config), that would help a lot.
I'll reduce it to min later today... Anyway: raddb # grep -r -i seuli * raddb # grep -r -i seutli * raddb # I do not use this word anywhere in my config. And I provoked the segfault before anything was pulled from a database or anything... it was a shutdown right after startup. I even used my favourite search engine for "SEUTLI" and it asked back if I maybe meant "Seattle". No, I didn't. So, let me strip down the config and see where I end up. Stefan -- Stefan WINTER Ingenieur de Recherche Fondation RESTENA - Réseau Téléinformatique de l'Education Nationale et de la Recherche 6, rue Richard Coudenhove-Kalergi L-1359 Luxembourg Tel: +352 424409 1 Fax: +352 422473
And it's SUETLI, right?
I meant SEUTLI; you were missing a T but I introduced a typo. *sigh*.
Maybe... there are endian issues which likely affect this. Maybe some other string?
Oh! If you read my query backwards from approx. the middle, you get pretty close: ... VALUES('%{User-Name}' ... -> %'(SEU The TLI is still AWOL. Stefan
I'll reduce it to min later today...
Thanks.
Alan DeKok. - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/devel.html
-- Stefan WINTER Ingenieur de Recherche Fondation RESTENA - Réseau Téléinformatique de l'Education Nationale et de la Recherche 6, rue Richard Coudenhove-Kalergi L-1359 Luxembourg Tel: +352 424409 1 Fax: +352 422473
Hi again, okay, that was quick. I started at the same virtual server which was problematic earlier, and hit it immediately. I now have one single virtual server in sites-enabled, and deleted most modules to prevent them from instantiating in the first place. The virtual server is EMPTY in all sections except for one custom SQL query in post-auth. Config copy&pasted at the end of this mail. And here is the result: Signalled to terminate Exiting normally. rlm_sql (sql-webmailsso-users): Removing connection pool rlm_sql (sql-webmailsso-users): Closing connection (4) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-webmailsso-users): Closing connection (3) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-webmailsso-users): Closing connection (2) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-webmailsso-users): Closing connection (1) rlm_sql_mysql: Socket destructor called, closing socket rlm_sql (sql-webmailsso-users): Closing connection (0) rlm_sql_mysql: Socket destructor called, closing socket Program received signal SIGSEGV, Segmentation fault. modcallable_free (pc=pc@entry=0x7fffffffe3c8) at src/main/modcall.c:2343 2343 next = loop->next; (gdb) print loop $1 = (modcallable *) 0x2527285345554c41 (gdb) SEUTLI is still there, and no sign of that in my minimal config. Wherever the skewed Seattle comes from, I'm pretty certain I'm innocent. And my config isn't weird! ;-) SQL custom statements are a supported feature, right? Of course I could create a "proper" sql module instance with this as its post-auth query, but then we wouldn't have the joy of finding obscure bugs in the source, right? :-) Stefan server AAI { authorize { } authenticate { } preacct { } accounting { } session { } post-auth { %{sql-webmailsso-users:INSERT INTO check_webmailsso_users (user,token,timeout) VALUES('%{User-Name}','notveryrandom',TIMESTAMPADD(hour, 12, NOW())) ON DUPLICATE KEY UPDATE token='notveryrandom', timeout=TIMESTAMPADD(hour, 12, NOW())} } pre-proxy { } post-proxy { } } On 17.07.2013 10:12, Stefan Winter wrote:
Hi,
I'll blame your configuration. It's weird!
Can we settle for "complex"? ;-)
And it's SUETLI, right?
But realistically, it does need to be fixed. If you could narrow it down to a simple configuration (without depending on local config), that would help a lot.
I'll reduce it to min later today...
Anyway:
raddb # grep -r -i seuli * raddb # grep -r -i seutli * raddb #
I do not use this word anywhere in my config. And I provoked the segfault before anything was pulled from a database or anything... it was a shutdown right after startup.
I even used my favourite search engine for "SEUTLI" and it asked back if I maybe meant "Seattle". No, I didn't.
So, let me strip down the config and see where I end up.
Stefan
- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/devel.html
-- Stefan WINTER Ingenieur de Recherche Fondation RESTENA - Réseau Téléinformatique de l'Education Nationale et de la Recherche 6, rue Richard Coudenhove-Kalergi L-1359 Luxembourg Tel: +352 424409 1 Fax: +352 422473
Stefan Winter wrote:
okay, that was quick. I started at the same virtual server which was problematic earlier, and hit it immediately.
Yeah, that's quick.
And my config isn't weird! ;-) SQL custom statements are a supported feature, right?
Yes. But apparently not well tested. <sigh> Using a debug-enabled build makes it hit an assertion instead. MUCH better. I should have a fix later today. Alan DeKok.
Hi,
Using a debug-enabled build makes it hit an assertion instead. MUCH better.
That would be with --enable-developer ? Can do for next time. Stefan
I should have a fix later today.
Alan DeKok. - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/devel.html
-- Stefan WINTER Ingenieur de Recherche Fondation RESTENA - Réseau Téléinformatique de l'Education Nationale et de la Recherche 6, rue Richard Coudenhove-Kalergi L-1359 Luxembourg Tel: +352 424409 1 Fax: +352 422473
Hi,
Using a debug-enabled build makes it hit an assertion instead. MUCH better.
That would be with --enable-developer ? Can do for next time.
IIRC you have no choice about that with the GIT HEAD release - it has --enable-developer on by default...and some other non-optimal flags for production server - just to allow debugging to work. they arent going to be there for the release version. alan
On 17 Jul 2013, at 11:13, A.L.M.Buxey@lboro.ac.uk wrote:
Hi,
Using a debug-enabled build makes it hit an assertion instead. MUCH better.
That would be with --enable-developer ? Can do for next time.
IIRC you have no choice about that with the GIT HEAD release
You can pass --disable-developer. :)
- it has --enable-developer on by default...and some other non-optimal flags for production server - just to allow debugging to work. they arent going to be there for the release version.
I believe Stefan was experiencing these issues in 2.x.x. Arran Cudbard-Bell <a.cudbardb@freeradius.org> FreeRADIUS Development Team
Hi,
okay, that was quick. I started at the same virtual server which was problematic earlier, and hit it immediately.
I've pushed a fix for v2.2.1 and v3.
My 2.2.1 GIT copy from today finally shuts down cleanly. THANKS! I'll test 3.0 GIT later today. Stefan -- Stefan WINTER Ingenieur de Recherche Fondation RESTENA - Réseau Téléinformatique de l'Education Nationale et de la Recherche 6, rue Richard Coudenhove-Kalergi L-1359 Luxembourg Tel: +352 424409 1 Fax: +352 422473
participants (4)
-
A.L.M.Buxey@lboro.ac.uk -
Alan DeKok -
Arran Cudbard-Bell -
Stefan Winter