Ticket #8865 (closed defect: worksforme)
Opened 2 years ago
Last modified 2 years ago
rename transaction triggers a test failure on Windows7,
| Reported by: | cboos | Owned by: | rblank |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | general | Version: | none |
| Severity: | normal | Keywords: | windows7 rename needrblank |
| Cc: | rblank | ||
| Release Notes: | |||
| API 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
Change History
comment:1 Changed 2 years ago by cboos
- Cc rblank added
- Keywords windows7 rename added
comment:2 follow-up: ↓ 3 Changed 2 years ago by cboos
- Keywords needrblank added
comment:3 in reply to: ↑ 2 Changed 2 years ago by rblank
- Milestone set to 0.11.7
- Owner set to rblank
comment:4 Changed 2 years ago by rblank
- Milestone 0.11.7 deleted
- Resolution set to worksforme
- Status changed from new to 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.