| Summary: | expect leaks memory when using -re | |||
|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 6 | Reporter: | Jan Stancek <jstancek> | |
| Component: | expect | Assignee: | Vitezslav Crhonek <vcrhonek> | |
| Status: | CLOSED CURRENTRELEASE | QA Contact: | BaseOS QE - Apps <qe-baseos-apps> | |
| Severity: | high | Docs Contact: | ||
| Priority: | high | |||
| Version: | 6.5 | CC: | borgan, bpeck, dcallagh, jburke, jkurik, mkeir, pbunyan, tlavigne | |
| Target Milestone: | rc | Keywords: | TestBlocker, ZStream | |
| Target Release: | --- | |||
| Hardware: | All | |||
| OS: | Linux | |||
| Whiteboard: | ||||
| Fixed In Version: | Doc Type: | Bug Fix | ||
| Doc Text: | Story Points: | --- | ||
| Clone Of: | ||||
| : | 1014624 (view as bug list) | Environment: | ||
| Last Closed: | 2013-11-14 10:40:06 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: | ||
| Bug Depends On: | ||||
| Bug Blocks: | 1014624, 1025199, 1025202 | |||
The patch from page linked in comment 0 makes the issue go away: diff --git a/expect.c b/expect.c index 65e6e04..185f9f3 100644 --- a/expect.c +++ b/expect.c @@ -185,9 +185,9 @@ free_ecase( { if (ec->i_list->duration == EXP_PERMANENT) { if (ec->pat) { Tcl_DecrRefCount(ec->pat); } - if (ec->gate) { Tcl_DecrRefCount(ec->gate); } if (ec->body) { Tcl_DecrRefCount(ec->body); } } + if (ec->gate) { Tcl_DecrRefCount(ec->gate); } if (free_ilist) { ec->i_list->ecount--; Used memory is holding stable at: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 31889 root 20 0 112m 2308 1796 R 94.5 0.3 1:43.09 expect Thank you for bug report and investigation. |
Description of problem: Using -re appears to lead to memory leaks in expect, its memory usage keeps going up indefinitely: Example: --------------------------------- #!/usr/bin/expect spawn yes log_user 0 while 1 { expect { -re ".+?\n" { # } } } --------------------------------- Running script above for couple seconds leads to: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 19334 root 20 0 1075m 606m 688 R 93.4 69.8 1:44.81 expect Version-Release number of selected component (if applicable): expect-5.44.1.15-4.el6.x86_64 How reproducible: 100% Steps to Reproduce: 1. run attached reproducer Actual results: expect memory usage keeps going up Expected results: expect memory usage should be stable Additional info: Reported also here: http://sourceforge.net/p/expect/patches/13/