glibc double free or corruption still happening
Hi, I've installed FreeRadius 1.1.6 to my Debian Etch box, trying to solve the 'glibc double free or corruption', but the error is still happening. To make sure that no old library was causing the problem, I searched for any file and folder which could be from the old freeradius (using locate *radiu* and updatedb, it until no file was to be found). Then I recompiled everything and reinstalled. The problem persisted. Could I have missed some library with the locate I used? Is there a better way to uninstall everything for the upgrade? Any other Ideas? Thank you, Roberto Greiner PS: The Radius -X output: Starting - reading configuration files ... reread_config: reading radiusd.conf Config: including file: /usr/local/etc/raddb/proxy.conf Config: including file: /usr/local/etc/raddb/clients.conf Config: including file: /usr/local/etc/raddb/snmp.conf Config: including file: /usr/local/etc/raddb/eap.conf Config: including file: /usr/local/etc/raddb/sql.conf main: prefix = "/usr/local" main: localstatedir = "/usr/local/var" main: logdir = "/usr/local/var/log/radius" main: libdir = "/usr/local/lib" main: radacctdir = "/usr/local/var/log/radius/radacct" main: hostname_lookups = no main: max_request_time = 30 main: cleanup_delay = 5 main: max_requests = 1024 main: delete_blocked_requests = 0 main: port = 0 main: allow_core_dumps = no main: log_stripped_names = no main: log_file = "/usr/local/var/log/radius/radius.log" main: log_auth = yes main: log_auth_badpass = no main: log_auth_goodpass = no main: pidfile = "/usr/local/var/run/radiusd/radiusd.pid" main: user = "(null)" main: group = "(null)" main: usercollide = no main: lower_user = "no" main: lower_pass = "no" main: nospace_user = "no" main: nospace_pass = "no" main: checkrad = "/usr/local/sbin/checkrad" main: proxy_requests = yes proxy: retry_delay = 5 proxy: retry_count = 3 proxy: synchronous = no proxy: default_fallback = yes proxy: dead_time = 120 proxy: post_proxy_authorize = no proxy: wake_all_if_all_dead = no security: max_attributes = 200 security: reject_delay = 0 security: status_server = no main: debug_level = 0 read_config_files: reading dictionary read_config_files: reading naslist Using deprecated naslist file. Support for this will go away soon. read_config_files: reading clients read_config_files: reading realms radiusd: entering modules setup Module: Library search path is /usr/local/lib *** glibc detected *** double free or corruption (fasttop): 0x800fbcc8 *** Aborted -- ----------------------------------------------------- Marcos Roberto Greiner Os otimistas acham que estamos no melhor dos mundos Os pessimistas tem medo de que isto seja verdade Murphy -----------------------------------------------------
Roberto Greiner wrote:
I've installed FreeRadius 1.1.6 to my Debian Etch box, trying to solve the 'glibc double free or corruption', but the error is still happening.
To make sure that no old library was causing the problem, I searched for any file and folder which could be from the old freeradius (using locate *radiu* and updatedb, it until no file was to be found). Then I recompiled everything and reinstalled. The problem persisted. Could I have missed some library with the locate I used? Is there a better way to uninstall everything for the upgrade? Any other Ideas?
http://wiki.freeradius.org/Build#Building_Debian_packages -- Nicolas Baradakis
Nicolas Baradakis wrote:
Roberto Greiner wrote:
I've installed FreeRadius 1.1.6 to my Debian Etch box, trying to solve the 'glibc double free or corruption', but the error is still happening.
To make sure that no old library was causing the problem, I searched for any file and folder which could be from the old freeradius (using locate *radiu* and updatedb, it until no file was to be found). Then I recompiled everything and reinstalled. The problem persisted. Could I have missed some library with the locate I used? Is there a better way to uninstall everything for the upgrade? Any other Ideas?
That did the trick. Everything is working well. But before putting it into production I will try again the previous building and see if I can get the data Alan requested with valgrind. Roberto -- ----------------------------------------------------- Marcos Roberto Greiner Os otimistas acham que estamos no melhor dos mundos Os pessimistas tem medo de que isto seja verdade Murphy -----------------------------------------------------
Roberto Greiner wrote:
Nicolas Baradakis wrote:
Roberto Greiner wrote:
I've installed FreeRadius 1.1.6 to my Debian Etch box, trying to solve the 'glibc double free or corruption', but the error is still happening.
To make sure that no old library was causing the problem, I searched for any file and folder which could be from the old freeradius (using locate *radiu* and updatedb, it until no file was to be found). Then I recompiled everything and reinstalled. The problem persisted. Could I have missed some library with the locate I used? Is there a better way to uninstall everything for the upgrade? Any other Ideas?
That did the trick. Everything is working well.
But before putting it into production I will try again the previous building and see if I can get the data Alan requested with valgrind.
Roberto
Errrrr, it worked now. The build using the instructions from the wiki must have modified some library or something alike. compiling and installing from source is not giving the double free error anymore :-( Roberto -- ----------------------------------------------------- Marcos Roberto Greiner Os otimistas acham que estamos no melhor dos mundos Os pessimistas tem medo de que isto seja verdade Murphy -----------------------------------------------------
I've installed FR 1.1.6 onto a clean CentOS 4.4 box and got this error, double free or corruption + some hex value. My CentOS /usr/src directory is empty, so I can't build an RPM as suggested in that link. Can I get yum to fill that up? Any ideas as to how to get this working? I've also tried ./configure --with-system-libtool but that lead to installation errors. Could I copy a 1.1.6 precompiled binary to this computer? I'm not having this problem on my intel machine, just on my opteron. Would there be any hidden beef with doing this or conflict with freeradius somewhere? Thanks. Roberto Greiner wrote:
Nicolas Baradakis wrote:
Roberto Greiner wrote:
I've installed FreeRadius 1.1.6 to my Debian Etch box, trying to solve the 'glibc double free or corruption', but the error is still happening.
To make sure that no old library was causing the problem, I searched for any file and folder which could be from the old freeradius (using locate *radiu* and updatedb, it until no file was to be found). Then I recompiled everything and reinstalled. The problem persisted. Could I have missed some library with the locate I used? Is there a better way to uninstall everything for the upgrade? Any other Ideas?
That did the trick. Everything is working well.
But before putting it into production I will try again the previous building and see if I can get the data Alan requested with valgrind.
Roberto
-- ----------------------------------------------------- Marcos Roberto Greiner
Os otimistas acham que estamos no melhor dos mundos Os pessimistas tem medo de que isto seja verdade Murphy -----------------------------------------------------
- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
-- View this message in context: http://www.nabble.com/glibc-double-free-or-corruption-still-happening-tf3571... Sent from the FreeRadius - User mailing list archive at Nabble.com.
ChristosH wrote:
I've installed FR 1.1.6 onto a clean CentOS 4.4 box and got this error, double free or corruption + some hex value.
$ valgrind --tool=memcheck --leakcheck=full radiusd -X It should print out more information, especially if you build the server with debugging symbols. Since I can't reproduce the problem here, it's vital that *someone* shows where it is.
Could I copy a 1.1.6 precompiled binary to this computer? I'm not having this problem on my intel machine, just on my opteron. Would there be any hidden beef with doing this or conflict with freeradius somewhere?
I don't see why. Maybe it's due to other minor OS differences between the two machines. Alan DeKok. -- http://deployingradius.com - The web site of the book http://deployingradius.com/blog/ - The blog
Here is the output from valgrind: ==504== Memcheck, a memory error detector. ==504== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al. ==504== Using LibVEX rev 1732, a library for dynamic binary translation. ==504== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP. ==504== Using valgrind-3.2.3, a dynamic binary instrumentation framework. ==504== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al. ==504== For more details, rerun with: -v ==504== Starting - reading configuration files ... reread_config: reading radiusd.conf Config: including file: /usr/local/etc/raddb/proxy.conf Config: including file: /usr/local/etc/raddb/clients.conf Config: including file: /usr/local/etc/raddb/snmp.conf Config: including file: /usr/local/etc/raddb/eap.conf Config: including file: /usr/local/etc/raddb/sql.conf main: prefix = "/usr/local" main: localstatedir = "/usr/local/var" main: logdir = "/usr/local/var/log/radius" main: libdir = "/usr/local/lib" main: radacctdir = "/usr/local/var/log/radius/radacct" main: hostname_lookups = no main: max_request_time = 30 main: cleanup_delay = 5 main: max_requests = 1024 main: delete_blocked_requests = 0 main: port = 0 main: allow_core_dumps = no main: log_stripped_names = no main: log_file = "/usr/local/var/log/radius/radius.log" main: log_auth = no main: log_auth_badpass = no main: log_auth_goodpass = no main: pidfile = "/usr/local/var/run/radiusd/radiusd.pid" main: user = "(null)" main: group = "(null)" main: usercollide = no main: lower_user = "no" main: lower_pass = "no" main: nospace_user = "no" main: nospace_pass = "no" main: checkrad = "/usr/local/sbin/checkrad" main: proxy_requests = yes proxy: retry_delay = 5 proxy: retry_count = 3 proxy: synchronous = no proxy: default_fallback = yes proxy: dead_time = 120 proxy: post_proxy_authorize = no proxy: wake_all_if_all_dead = no security: max_attributes = 200 security: reject_delay = 1 security: status_server = no main: debug_level = 0 read_config_files: reading dictionary ==504== Conditional jump or move depends on uninitialised value(s) ==504== at 0x481E46E: lrad_rand_seed (radius.c:2416) ==504== by 0x4817F1F: my_dict_init (dict.c:1010) ==504== by 0x4818B4D: dict_init (dict.c:1258) ==504== by 0xAB50: read_radius_conf_file (mainconfig.c:1276) ==504== by 0xAC2E: read_mainconfig (mainconfig.c:1309) ==504== by 0xFEA7: main (radiusd.c:941) ==504== ==504== Conditional jump or move depends on uninitialised value(s) ==504== at 0x481E46E: lrad_rand_seed (radius.c:2416) ==504== by 0x4817F1F: my_dict_init (dict.c:1010) ==504== by 0x48182EB: my_dict_init (dict.c:1050) ==504== by 0x4818B4D: dict_init (dict.c:1258) ==504== by 0xAB50: read_radius_conf_file (mainconfig.c:1276) ==504== by 0xAC2E: read_mainconfig (mainconfig.c:1309) ==504== by 0xFEA7: main (radiusd.c:941) ==504== ==504== Conditional jump or move depends on uninitialised value(s) ==504== at 0x481E46E: lrad_rand_seed (radius.c:2416) ==504== by 0x4817F1F: my_dict_init (dict.c:1010) ==504== by 0x48182EB: my_dict_init (dict.c:1050) ==504== by 0x48182EB: my_dict_init (dict.c:1050) ==504== by 0x4818B4D: dict_init (dict.c:1258) ==504== by 0xAB50: read_radius_conf_file (mainconfig.c:1276) ==504== by 0xAC2E: read_mainconfig (mainconfig.c:1309) ==504== by 0xFEA7: main (radiusd.c:941) read_config_files: reading naslist Using deprecated naslist file. Support for this will go away soon. read_config_files: reading clients read_config_files: reading realms radiusd: entering modules setup Module: Library search path is /usr/local/lib ==504== ==504== Invalid free() / delete / delete[] ==504== at 0x4805289: free (vg_replace_malloc.c:233) ==504== by 0x482BC7B: try_dlopen (ltdl.c:3429) ==504== by 0x482C59D: lt_dlopenext (ltdl.c:3504) ==504== by 0xC4F4: find_module_instance (modules.c:207) ==504== by 0xCC82: setup_modules (modules.c:884) ==504== by 0x103E1: main (radiusd.c:965) ==504== Address 0x4A39D70 is 0 bytes inside a block of size 12 free'd ==504== at 0x4805289: free (vg_replace_malloc.c:233) ==504== by 0x482BA9A: try_dlopen (ltdl.c:3428) ==504== by 0x482C59D: lt_dlopenext (ltdl.c:3504) ==504== by 0xC4F4: find_module_instance (modules.c:207) ==504== by 0xCC82: setup_modules (modules.c:884) ==504== by 0x103E1: main (radiusd.c:965) Module: Loaded exec exec: wait = yes exec: program = "(null)" exec: input_pairs = "request" exec: output_pairs = "(null)" exec: packet_type = "(null)" rlm_exec: Wait=yes but no output defined. Did you mean output=none? Module: Instantiated exec (exec) Module: Loaded expr Module: Instantiated expr (expr) Module: Loaded PAP pap: encryption_scheme = "crypt" pap: auto_header = yes Module: Instantiated pap (pap) Module: Loaded CHAP Module: Instantiated chap (chap) Module: Loaded MS-CHAP mschap: use_mppe = yes mschap: require_encryption = no mschap: require_strong = no mschap: with_ntdomain_hack = no mschap: passwd = "(null)" mschap: ntlm_auth = "(null)" Module: Instantiated mschap (mschap) Module: Loaded System unix: cache = no unix: passwd = "(null)" unix: shadow = "(null)" unix: group = "(null)" unix: radwtmp = "/usr/local/var/log/radius/radwtmp" unix: usegroup = no unix: cache_reload = 600 Module: Instantiated unix (unix) Module: Loaded eap eap: default_eap_type = "md5" eap: timer_expire = 60 eap: ignore_unknown_eap_types = no eap: cisco_accounting_username_bug = no ==504== ==504== Invalid free() / delete / delete[] ==504== at 0x4805289: free (vg_replace_malloc.c:233) ==504== by 0x482BC7B: try_dlopen (ltdl.c:3429) ==504== by 0x482C59D: lt_dlopenext (ltdl.c:3504) ==504== by 0x4B4F061: eaptype_load (eap.c:85) ==504== by 0x4B4E730: eap_instantiate (rlm_eap.c:145) ==504== by 0xC5DE: find_module_instance (modules.c:358) ==504== by 0xDD9C: do_compile_modsingle (modcall.c:1005) ==504== by 0xCD6E: setup_modules (modules.c:580) ==504== by 0x103E1: main (radiusd.c:965) ==504== Address 0x4A43908 is 0 bytes inside a block of size 15 free'd ==504== at 0x4805289: free (vg_replace_malloc.c:233) ==504== by 0x482BA9A: try_dlopen (ltdl.c:3428) ==504== by 0x482C59D: lt_dlopenext (ltdl.c:3504) ==504== by 0x4B4F061: eaptype_load (eap.c:85) ==504== by 0x4B4E730: eap_instantiate (rlm_eap.c:145) ==504== by 0xC5DE: find_module_instance (modules.c:358) ==504== by 0xDD9C: do_compile_modsingle (modcall.c:1005) ==504== by 0xCD6E: setup_modules (modules.c:580) ==504== by 0x103E1: main (radiusd.c:965) rlm_eap: Loaded and initialized type md5 rlm_eap: Loaded and initialized type leap gtc: challenge = "Password: " gtc: auth_type = "PAP" rlm_eap: Loaded and initialized type gtc mschapv2: with_ntdomain_hack = no rlm_eap: Loaded and initialized type mschapv2 Module: Instantiated eap (eap) Module: Loaded preprocess preprocess: huntgroups = "/usr/local/etc/raddb/huntgroups" preprocess: hints = "/usr/local/etc/raddb/hints" preprocess: with_ascend_hack = no preprocess: ascend_channels_per_line = 23 preprocess: with_ntdomain_hack = no preprocess: with_specialix_jetstream_hack = no preprocess: with_cisco_vsa_hack = no preprocess: with_alvarion_vsa_hack = no Module: Instantiated preprocess (preprocess) Module: Loaded realm realm: format = "suffix" realm: delimiter = "@" realm: ignore_default = no realm: ignore_null = no Module: Instantiated realm (suffix) Module: Loaded files files: usersfile = "/usr/local/etc/raddb/users" files: acctusersfile = "/usr/local/etc/raddb/acct_users" files: preproxy_usersfile = "/usr/local/etc/raddb/preproxy_users" files: compat = "no" Module: Instantiated files (files) Module: Loaded Acct-Unique-Session-Id acct_unique: key = "User-Name, Acct-Session-Id, NAS-IP-Address, Client-IP-Address, NAS-Port" Module: Instantiated acct_unique (acct_unique) Module: Loaded detail detail: detailfile = "/usr/local/var/log/radius/radacct/%{Client-IP-Address}/detail-%Y%m%d" detail: detailperm = 384 detail: dirperm = 493 detail: locking = no Module: Instantiated detail (detail) Module: Loaded radutmp radutmp: filename = "/usr/local/var/log/radius/radutmp" radutmp: username = "%{User-Name}" radutmp: case_sensitive = yes radutmp: check_with_nas = yes radutmp: perm = 384 radutmp: callerid = yes Module: Instantiated radutmp (radutmp) Listening on authentication *:1812 Listening on accounting *:1813 Ready to process requests. ==504== ==504== ERROR SUMMARY: 104 errors from 5 contexts (suppressed: 66 from 2) ==504== malloc/free: in use at exit: 732,409 bytes in 27,346 blocks. ==504== malloc/free: 27,957 allocs, 628 frees, 860,379 bytes allocated. ==504== For counts of detected errors, rerun with: -v ==504== searching for pointers to 27,346 not-freed blocks. ==504== checked 1,097,916 bytes. ==504== ==504== LEAK SUMMARY: ==504== definitely lost: 0 bytes in 0 blocks. ==504== possibly lost: 0 bytes in 0 blocks. ==504== still reachable: 732,409 bytes in 27,346 blocks. ==504== suppressed: 0 bytes in 0 blocks. ==504== Reachable blocks (those to which a pointer was found) are not shown. ==504== To see them, rerun with: --leak-check=full --show-reachable=yes Alan DeKok-4 wrote:
ChristosH wrote:
I've installed FR 1.1.6 onto a clean CentOS 4.4 box and got this error, double free or corruption + some hex value.
$ valgrind --tool=memcheck --leakcheck=full radiusd -X
It should print out more information, especially if you build the server with debugging symbols.
Since I can't reproduce the problem here, it's vital that *someone* shows where it is.
Could I copy a 1.1.6 precompiled binary to this computer? I'm not having this problem on my intel machine, just on my opteron. Would there be any hidden beef with doing this or conflict with freeradius somewhere?
I don't see why. Maybe it's due to other minor OS differences between the two machines.
Alan DeKok. -- http://deployingradius.com - The web site of the book http://deployingradius.com/blog/ - The blog - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
-- View this message in context: http://www.nabble.com/glibc-double-free-or-corruption-still-happening-tf3571... Sent from the FreeRadius - User mailing list archive at Nabble.com.
ChristosH wrote:
Here is the output from valgrind: ... ==504== Invalid free() / delete / delete[] ==504== at 0x4805289: free (vg_replace_malloc.c:233) ==504== by 0x482BC7B: try_dlopen (ltdl.c:3429)
It looks like you have the "libltdl.la" files from 1.1.5 still installed. Delete them, and it should work. i.e. In 1.1.6, line 3429 of libltdl contains no reference to "free". In 1.1.5, it did. Alan DeKok. -- http://deployingradius.com - The web site of the book http://deployingradius.com/blog/ - The blog
Roberto Greiner wrote:
I've installed FreeRadius 1.1.6 to my Debian Etch box, trying to solve the 'glibc double free or corruption', but the error is still happening.
I'de love to know where it's coming from. I ran it on my system, and under valgrind, and say nothing.
To make sure that no old library was causing the problem, I searched for any file and folder which could be from the old freeradius (using locate *radiu* and updatedb, it until no file was to be found). Then I recompiled everything and reinstalled. The problem persisted. Could I have missed some library with the locate I used? Is there a better way to uninstall everything for the upgrade? Any other Ideas?
$ valgrind --tool=memcheck --leak-check=full radiusd -X It might get you more information. Alan DeKok. -- http://deployingradius.com - The web site of the book http://deployingradius.com/blog/ - The blog
have u tried this which was suggested by Nicolas Baradakis <nbk@sitadelle.com> " You could try to use the libltdl from Fedora instead of the one from the FreeRADIUS sources. $ ./configure --with-system-libtool " On 4/13/07, Alan DeKok <aland@deployingradius.com> wrote:
Roberto Greiner wrote:
I've installed FreeRadius 1.1.6 to my Debian Etch box, trying to solve the 'glibc double free or corruption', but the error is still happening.
I'de love to know where it's coming from.
I ran it on my system, and under valgrind, and say nothing.
To make sure that no old library was causing the problem, I searched for any file and folder which could be from the old freeradius (using locate *radiu* and updatedb, it until no file was to be found). Then I recompiled everything and reinstalled. The problem persisted. Could I have missed some library with the locate I used? Is there a better way to uninstall everything for the upgrade? Any other Ideas?
$ valgrind --tool=memcheck --leak-check=full radiusd -X
It might get you more information.
Alan DeKok. -- http://deployingradius.com - The web site of the book http://deployingradius.com/blog/ - The blog - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
participants (5)
-
Alan DeKok -
ChristosH -
Jacob Jarick -
Nicolas Baradakis -
Roberto Greiner