Re: [Modules] Modules that load modules segfault when unloading due to invalid memory accesses
Manage your shell environment variables and aliases
Brought to you by:
xdelaruelle
From: Kenneth H. <ken...@ug...> - 2012-09-14 22:00:03
|
Hi Tyson, On 30 Aug 2012, at 20:27, Tyson Whitehead wrote: > On August 24, 2012 08:08:32 Kenneth Hoste wrote: >> On 04/20/2012 09:59 PM, Tyson Whitehead wrote: >>> We're running modules 3.2.9c under CentOS 6 and having problems with >>> segfaults. I did some traces under valgrind and it seems the problem is >>> that modulecmd continues to access memory that has been freed when >>> unloading (either directly or through a purge) modules that load other >>> modules. >> >> ... >> >> The solution is simple: ReturnValue just needs to ask Tcl again to >> compile the regexp, so it's kept in the cache (or recompiled if really >> needed). It shouldn't try to be smart, Tcl takes care of that (i.e. it >> pushing already compiled regexps to the top of the cache itself). >> >> The attached patch fixes the issue. Tested with modules v3.2.9c and Tcl >> 5.8.12 (latest available versions). > > Thanks so much for digging into this and posting a patch. I just finished > applying and rebuilding now we aren't getting any more segfaults. > > For completeness I also ran against valgrind again and it isn't reporting any > issues anymore too. So it looks like you've really done it. =) > > I would highly recommend that this gets incorporated upstream ASAP. Glad to hear this resolves the issue on your end as well. I'd be happy to learn how this (imho) important patch can get into upstream, so it's included in the next release of the modules tools. Anyone? regards, Kenneth |