Messages in this thread | | | Date | Fri, 04 Jan 2008 09:07:26 +0900 | From | Tejun Heo <> | Subject | Re: Error returns not handled correctly by sysfs.c:subsys_attr_store() |
| |
Hello,
Andrew Patterson wrote: > It looks like this is a shell issue. After looking through the sysfs > code, I realized that this problem seems to be driven from user-land. > So I performed some experiments: > > 1. Wrote a simple program that just used write(2) to write to the > sysfs entry. This works fine. > 2. Used /bin/echo instead of the built-in echo command. This too > works fine. > 3. Tried several shells. Zsh and Bash both fail. Csh works fine. > > I then ran strace on the following shell-script: > > #!/bin/bash > > echo x > allow_restart > echo y > allow_restart > echo z > allow_restart > > and got: > > # strace -e trace=write ~/tmp/tester.sh > write(1, "x\n", 2) = -1 EINVAL (Invalid argument) > write(1, "x\n", 2) = -1 EINVAL (Invalid argument) > write(2, "/home/andrew/tmp/tester.sh: line"..., 72/home/andrew/tmp/tester.sh: line 4: echo: write error: Invalid argument > ) = 72 > write(1, "x\ny\n", 4) = -1 EINVAL (Invalid argument) > write(1, "x\ny\n", 4) = -1 EINVAL (Invalid argument) > write(2, "/home/andrew/tmp/tester.sh: line"..., 72/home/andrew/tmp/tester.sh: line 5: echo: write error: Invalid argument > ) = 72 > write(1, "x\ny\nz\n", 6) = -1 EINVAL (Invalid argument) > write(1, "x\ny\nz\n", 6) = -1 EINVAL (Invalid argument) > write(2, "/home/andrew/tmp/tester.sh: line"..., 72/home/andrew/tmp/tester.sh: line 6: echo: write error: Invalid argument > ) = 72 > write(1, "x\ny\nz\n", 6x > y > z > ) = 6 > Process 3800 detached
Eeeeeeeekkkk.... That's scary. Which distro are you using and what does 'bash --version' say?
-- tejun
| |