This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2012年07月19日 18:33 by flavio.ribeiro, last changed 2022年04月11日 14:57 by admin. This issue is now closed.
| Messages (17) | |||
|---|---|---|---|
| msg165849 - (view) | Author: Flávio Ribeiro (flavio.ribeiro) * | Date: 2012年07月19日 18:33 | |
Found a intermittent test on UnicodeFileTests.test_rename method. Python Version: Python 3.3.0b1 Hg commit hash: 3fbfa61634de MacOS X version 10.6.8 How can be reproduced: bumblebee:~/dev/cpython[] $ for i in {1..10}; do ./python.exe -m test test_pep277; done [1/1] test_pep277 1 test OK. [103867 refs] [1/1] test_pep277 1 test OK. [103867 refs] [1/1] test_pep277 1 test OK. [103867 refs] [1/1] test_pep277 1 test OK. [103867 refs] [1/1] test_pep277 1 test OK. [103867 refs] [1/1] test_pep277 test test_pep277 failed -- Traceback (most recent call last): File "/Users/flavio.barbosa/dev/cpython/Lib/test/test_pep277.py", line 172, in test_rename os.rename("tmp", name) FileNotFoundError: [Errno 2] No such file or directory: '@test_51143_tmp/8_曨曩曫' 1 test failed: test_pep277 [103879 refs] [1/1] test_pep277 1 test OK. [103867 refs] [1/1] test_pep277 test test_pep277 failed -- Traceback (most recent call last): File "/Users/flavio.barbosa/dev/cpython/Lib/test/test_pep277.py", line 172, in test_rename os.rename("tmp", name) FileNotFoundError: [Errno 2] No such file or directory: '@test_51145_tmp/3_Grüß-Gott' 1 test failed: test_pep277 [103879 refs] [1/1] test_pep277 1 test OK. [103867 refs] [1/1] test_pep277 test test_pep277 failed -- Traceback (most recent call last): File "/Users/flavio.barbosa/dev/cpython/Lib/test/test_pep277.py", line 172, in test_rename os.rename("tmp", name) FileNotFoundError: [Errno 2] No such file or directory: '@test_51147_tmp/6_にぽん' 1 test failed: test_pep277 [103879 refs] |
|||
| msg165851 - (view) | Author: Tatiana Al-Chueyr (tati_alchueyr) * | Date: 2012年07月19日 18:37 | |
I had the same problem here, after running several times...
$ for i in {1..10}; do ./python.exe -m test test_pep277; done
[1/1] test_pep277
test test_pep277 failed -- Traceback (most recent call last):
File "/Users/tatiana/code/cpython/Lib/test/test_pep277.py", line 172, in test_rename
os.rename("tmp", name)
FileNotFoundError: [Errno 2] No such file or directory: '@test_6002_tmp/2_ascii'
1 test failed:
test_pep277
[1/1] test_pep277
1 test OK.
[1/1] test_pep277
1 test OK.
[1/1] test_pep277
1 test OK.
[1/1] test_pep277
1 test OK.
[1/1] test_pep277
1 test OK.
[1/1] test_pep277
test test_pep277 failed -- Traceback (most recent call last):
File "/Users/tatiana/code/cpython/Lib/test/test_pep277.py", line 172, in test_rename
os.rename("tmp", name)
FileNotFoundError: [Errno 2] No such file or directory: '@test_6033_tmp/6_にぽん'
1 test failed:
test_pep277
[1/1] test_pep277
1 test OK.
[1/1] test_pep277
test test_pep277 failed -- Traceback (most recent call last):
File "/Users/tatiana/code/cpython/Lib/test/test_pep277.py", line 172, in test_rename
os.rename("tmp", name)
FileNotFoundError: [Errno 2] No such file or directory: '@test_6041_tmp/8_曨曩曫'
1 test failed:
test_pep277
[1/1] test_pep277
1 test OK.
|
|||
| msg165857 - (view) | Author: R. David Murray (r.david.murray) * (Python committer) | Date: 2012年07月19日 19:16 | |
By the way, you can use -F to run the test suite until it fails: ./python -m test -F test_pep277 |
|||
| msg165858 - (view) | Author: R. David Murray (r.david.murray) * (Python committer) | Date: 2012年07月19日 19:17 | |
Tatiana, are you on a Mac as well? |
|||
| msg165864 - (view) | Author: Tatiana Al-Chueyr (tati_alchueyr) * | Date: 2012年07月19日 19:23 | |
r.david.murray: yes, MacOS X 10.6.8 we managed to reproduce this in other 2 MacBook Pro 8.1. |
|||
| msg165865 - (view) | Author: Hugo Lopes Tavares (hltbra) | Date: 2012年07月19日 19:25 | |
I had no problems after running for a very long time (using -F). I am using Mac OSX 10.6.8. |
|||
| msg165875 - (view) | Author: Flávio Ribeiro (flavio.ribeiro) * | Date: 2012年07月19日 20:40 | |
For doc purposes: My first shot is that in my machine the os.rename isn't atomic and this could be generating an overhead somehow. Looking at the code, I found decisions being made on posixmodule.c about what `rename` function should be used: #ifdef HAVE_RENAMEAT if (dir_fd_specified) result = renameat(src_dir_fd, src.narrow, dst_dir_fd, dst.narrow); else #endif result = rename(src.narrow, dst.narrow); Py_END_ALLOW_THREADS In my machine the second `rename` is being used. |
|||
| msg165876 - (view) | Author: Ned Deily (ned.deily) * (Python committer) | Date: 2012年07月19日 20:51 | |
I haven't been able to reproduce this failure on either 10.6 or 10.7 with or without pydebug and either at 3fbfa61634de or the now slightly more current tip. What filesystem are you running the test under? What ./configure options did you use? What compiler did you use? What environment variables are defined especially LANG or LC_* ones? |
|||
| msg165877 - (view) | Author: Ned Deily (ned.deily) * (Python committer) | Date: 2012年07月19日 21:00 | |
And OS X doesn't support the *at system calls so HAVE_RENAMEAT will always be false on OS X. I don't recall every seeing this test fail before. |
|||
| msg165879 - (view) | Author: R. David Murray (r.david.murray) * (Python committer) | Date: 2012年07月19日 21:34 | |
I found this link: http://www.weirdnet.nl/apple/rename.html in issue 8828, which sounds like it is relevant. (I thought I remembered something about rename not being atomic on OS X.) I didn't read it through, but maybe Apple fixed the bug. |
|||
| msg165880 - (view) | Author: Flávio Ribeiro (flavio.ribeiro) * | Date: 2012年07月19日 21:48 | |
Hi Ned, I've used ./configure --with-pydebug && make -j2 $ gcc --version i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3) Copyright (C) 2007 Free Software Foundation, Inc. $ printenv | grep LC_ $ printenv| grep LANG LANG=en_US.UTF-8 $ mount /dev/disk0s2 on / (hfs, local, journaled) |
|||
| msg165886 - (view) | Author: Ned Deily (ned.deily) * (Python committer) | Date: 2012年07月19日 22:38 | |
Thanks, Flávio. That configuration looks perfectly normal and what I use so that should not be an issue. Interesting link, David. I'm not able to reproduce that failure on 10.6.8 using the procedure in the link but I am running 10.6.8 on a virtual machine so that isn't conclusive. The author says that the problem is fixed in 10.7' so it's not surprising that I can't reproduce it on a non-virtual 10.7, either. I guess it would be interesting to know if Flávio or Tatiana can duplicate the results of the blog post. It would also be interesting to know if test_pep277 also fails in the same environment with Python 3.2. But, assuming the issue is OS-related, I don't see what we should do about it other than possibly adding a comment to the test. Opinions? |
|||
| msg165900 - (view) | Author: Ronald Oussoren (ronaldoussoren) * (Python committer) | Date: 2012年07月20日 06:12 | |
Whether or not rename is atomic should be irrelevant for test_rename. Test_rename "just" performs renames in a tight loop and doesn't do concurrent access from another thread. The test result seems to indicate that rename() sometimes isn't done yet when the sys call returns (or even that it fails silently), which would be even worse than it not being atomic. That said, I cannot reproduce using Python 3.3.0b1 (default:abc26b51fbfc, Jul 20 2012, 07:50:15) on an OSX 10.7 system. I'm currently rebuilding for a test run on a OSX 10.5.8 machine on real hardware. |
|||
| msg165922 - (view) | Author: Rafael Caricio (rafaelcaricio) | Date: 2012年07月20日 13:38 | |
I had this problem when I run the tests in my machine (Mac OSX 10.6.8). The intermittence happen here. |
|||
| msg165926 - (view) | Author: Flávio Ribeiro (flavio.ribeiro) * | Date: 2012年07月20日 13:56 | |
Ronald, I thought it could be an `atomic` issue by the fact that test_rename transforms a filename in tmp and then it change again to the original name. Not being atomic, the rename will not finish the executation of the first one (even though a return code has been sent) and FileNotFoundError is dispatched. Anyway, i've added a time.sleep in the middle of the two lines to assert this and no more intermittence could be found. Ideas? |
|||
| msg194232 - (view) | Author: Ned Deily (ned.deily) * (Python committer) | Date: 2013年08月03日 03:19 | |
Has anyone seen this problem on other than OS X 10.6? If not, I suggest we assume it was, in fact, due to a platform bug and close. |
|||
| msg224035 - (view) | Author: Ronald Oussoren (ronaldoussoren) * (Python committer) | Date: 2014年07月26日 09:40 | |
I'd be in favour of closing this issue, I haven't seen the problem in a while and it is almost certainly due to a platform bug on OSX 10.6. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:57:33 | admin | set | github: 59603 |
| 2014年07月26日 19:23:31 | ned.deily | set | status: open -> closed resolution: third party stage: resolved |
| 2014年07月26日 09:40:49 | ronaldoussoren | set | messages: + msg224035 |
| 2013年08月03日 03:19:51 | ned.deily | set | messages: + msg194232 |
| 2012年07月20日 13:56:29 | flavio.ribeiro | set | messages: + msg165926 |
| 2012年07月20日 13:38:14 | rafaelcaricio | set | nosy:
+ rafaelcaricio messages: + msg165922 |
| 2012年07月20日 06:12:07 | ronaldoussoren | set | messages: + msg165900 |
| 2012年07月19日 22:38:47 | ned.deily | set | messages: + msg165886 |
| 2012年07月19日 21:48:09 | flavio.ribeiro | set | messages: + msg165880 |
| 2012年07月19日 21:34:25 | r.david.murray | set | messages: + msg165879 |
| 2012年07月19日 21:00:40 | ned.deily | set | messages: + msg165877 |
| 2012年07月19日 20:51:26 | ned.deily | set | assignee: ronaldoussoren -> messages: + msg165876 nosy: + ned.deily |
| 2012年07月19日 20:40:13 | flavio.ribeiro | set | messages: + msg165875 |
| 2012年07月19日 19:25:46 | hltbra | set | nosy:
+ hltbra messages: + msg165865 |
| 2012年07月19日 19:23:18 | tati_alchueyr | set | messages: + msg165864 |
| 2012年07月19日 19:17:10 | r.david.murray | set | messages: + msg165858 |
| 2012年07月19日 19:16:17 | r.david.murray | set | nosy:
+ r.david.murray messages: + msg165857 |
| 2012年07月19日 18:37:03 | tati_alchueyr | set | nosy:
+ tati_alchueyr messages: + msg165851 |
| 2012年07月19日 18:33:56 | flavio.ribeiro | create | |