Opened 16 years ago
Closed 16 years ago
#8865 closed defect (worksforme)
rename transaction triggers a test failure on Windows7,
| Reported by: | Christian Boos | Owned by: | Remy Blank | 
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | general | Version: | none | 
| Severity: | normal | Keywords: | windows7 rename needrblank | 
| Cc: | Remy Blank | Branch: | |
| Release Notes: | |||
| API Changes: | |||
| Internal Changes: | |||
Description
Seen in Tim's buildbot:
http://buildbot.timhatch.com/trac/builders/win7%20py26/builds/62
ERROR: Test for regression of http://trac.edgewall.org/ticket/3833 c
----------------------------------------------------------------------
Traceback (most recent call last):
  File "c:\Users\buildbot\Desktop\tracbb\t35\build\trac\tests\functional\testcases.py", line 93, in runTest
    env.config.save()
  File "c:\Users\buildbot\Desktop\tracbb\t35\build\trac\config.py", line 233, in save
    fileobj.close()
  File "c:\Users\buildbot\Desktop\tracbb\t35\build\trac\util\__init__.py", line 178, in commit
    rename(self._temp, self._path)
  File "c:\Users\buildbot\Desktop\tracbb\t35\build\trac\util\__init__.py", line 113, in rename
    raise ctypes.WinError()
WindowsError: [Error 6701] The requested operation was made in the context of a transaction that is no longer active.
Related to code introduced in r8635.
Gc issue? Timeout issue?
Attachments (0)
Change History (4)
comment:1 by , 16 years ago
| Cc: | added | 
|---|---|
| Keywords: | windows7 rename added | 
follow-up: 3 comment:2 by , 16 years ago
| Keywords: | needrblank added | 
|---|
comment:3 by , 16 years ago
| Milestone: | → 0.11.7 | 
|---|---|
| Owner: | set to | 
comment:4 by , 16 years ago
| Milestone: | 0.11.7 | 
|---|---|
| Resolution: | → worksforme | 
| Status: | new → closed | 
Unfortunately, I'm not able to reproduce the issue. I tried adding delays at various points during the rename and in the rename test cases, but no joy.
I increased the transaction timeout to 10 seconds anyway in [9244]. Also, the code has changed since then (it doesn't raise a WinError anymore, and tries os.rename() instead), so the issue might have been fixed (or made more unlikely to happen) with that change.



  
Replying to cboos:
Very funny :)
Now that I have a Windows 7 VM, I should look into this. A timeout sounds likely, maybe we should set the transaction timeout to a larger value than 1 second. Maybe 5 or 10 seconds.