Date: Fri, 1 Jun 2007 20:08:46 +0300 From: Lena <Lena@lena.kiev.ua> To: FreeBSD-gnats-submit@FreeBSD.org Cc: mm@FreeBSD.org Subject: ports/113241: expect hangs after upgrade from tcl-8.4.14_4, 1 to tcl-8.4.15, 1 Message-ID: <20070601170846.GC6095@lena.kiev> Resent-Message-ID: <200706020110.l521A3h1015424@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 113241 >Category: ports >Synopsis: expect hangs after upgrade from tcl-8.4.14_4,1 to tcl-8.4.15,1 >Confidential: no >Severity: critical >Priority: medium >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sat Jun 02 01:10:03 GMT 2007 >Closed-Date: >Last-Modified: >Originator: Lena <Lena@lena.kiev.ua> >Release: FreeBSD 6.2-RELEASE-p1 i386 >Organization: >Environment: System: FreeBSD bedside.lena.kiev.ua 6.2-RELEASE-p1 FreeBSD 6.2-RELEASE-p1 #1: Sat Mar 24 14:06:12 EET 2007 root@bedside.lena.kiev.ua:/usr/obj/usr/src/sys/BEDSIDE i386 Ports tree cvsup-ed today, then portupgrade -a Athlon 64 3500+ with 512M RAM. >Description: After upgrade from tcl-8.4.14_4,1 to tcl-8.4.15,1 an expect script began to eat CPU infinitely on exit. Downgrade fixed the problem. >How-To-Repeat: My original script (without explicit 'exit' command) asks for the IP-address from a DSL-modem/router (for dyndns). A stripped down test script, with 'exit' added: #!/bin/sh TERM=cons25r expect -c 'spawn telnet -N 192.168.1.1 expect "ogin: " send "root\r" expect "assword: " send "password\r" expect "# " send "ifconfig ppp0\r" expect "inet addr:" expect " " puts [string trimright $expect_out(buffer)] expect "# " close wait puts "after wait\n" exit puts "after exit\n"' Its output: ===== spawn telnet -N 192.168.1.1 Trying 192.168.1.1... Connected to 192.168.1.1. Escape character is '^]'. mygateway login: root Password: BusyBox v1.00 (2005.03.01-00:28+0000) Built-in shell (ash) Enter 'help' for a list of built-in commands. # ifconfig ppp0 ppp0 Link encap:Point-Point Protocol inet addr:62.80.174.221 P-t-P:62.80.172.80 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1 RX packets:80649 errors:0 dropped:0 overruns:0 frame:0 TX packets:63284 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:97406962 (92.8 MiB) TX bytes:8122755 (7.7 MiB) # 62.80.174.221 after wait Hangup ===== The "Hangup" line is a result of "kill -HUP" because without it, after telnet finishes, expect begins to eat CPU infinitely. Then the `ps` command shows: 358 v5 R+ 0:21,08 [expect] The `top` command shows (on an otherwise idle workstation): CPU states: 49.6% user, 0.0% nice, 44.0% system, 6.4% interrupt, 0.0% idle Mem: 177M Active, 121M Inact, 81M Wired, 23M Cache, 58M Buf, 71M Free Swap: 768M Total, 40K Used, 768M Free PID USERNAME THR PRI NICE SIZE RES STATE TIME WCPU COMMAND 358 lena 1 132 0 2544K 1928K RUN 3:49 97.51% expect Same without explicit 'exit' command. A simpler test script finishes normally: #!/bin/sh TERM=cons25r expect -c 'puts "hello world\n" exit puts "after exit\n"' Sorry, I don't know how to debug further. For me downgrade to tcl-8.4.14_4,1 fixed the problem. >Fix: >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070601170846.GC6095>