Summary: | emerge: don't break on "Stale NFS file handle" error | ||
---|---|---|---|
Product: | Portage Development | Reporter: | Krzysztof Olędzki <ole+gentoo> |
Component: | Repoman | Assignee: | Portage team <dev-portage> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | Keywords: | InVCS |
Priority: | High | ||
Version: | 2.2 | ||
Hardware: | All | ||
OS: | All | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 210077, 268228 | ||
Attachments: | Handle ENOENT and ESTALE in the same way, patch against portage-2.2_rc30 |
Created attachment 188387 [details, diff]
Handle ENOENT and ESTALE in the same way, patch against portage-2.2_rc30
Thanks, this is in svn r13347. This is fixed in 2.2_rc31. This is fixed in 2.1.6.12. |
Running portage over nfs can lead sometimes into problems like: # emerge -f busybox Calculating dependencies... done! >>> Fetching (1 of 1) sys-apps/busybox-1.13.4 Traceback (most recent call last): File "/usr/bin/emerge", line 40, in <module> retval = _emerge.emerge_main() File "//usr/lib64/portage/pym/_emerge/__init__.py", line 15715, in emerge_main myopts, myaction, myfiles, spinner) File "//usr/lib64/portage/pym/_emerge/__init__.py", line 14659, in action_build retval = mergetask.merge() File "//usr/lib64/portage/pym/_emerge/__init__.py", line 10723, in merge rval = self._merge() File "//usr/lib64/portage/pym/_emerge/__init__.py", line 11024, in _merge self._main_loop() File "//usr/lib64/portage/pym/_emerge/__init__.py", line 11152, in _main_loop while self._schedule(): File "//usr/lib64/portage/pym/_emerge/__init__.py", line 9456, in _schedule return self._schedule_tasks() File "//usr/lib64/portage/pym/_emerge/__init__.py", line 11183, in _schedule_tasks if q.schedule(): File "//usr/lib64/portage/pym/_emerge/__init__.py", line 9325, in schedule task.start() File "//usr/lib64/portage/pym/_emerge/__init__.py", line 1836, in start self._start() File "//usr/lib64/portage/pym/_emerge/__init__.py", line 3963, in _start self._start_task(build, self._default_final_exit) File "//usr/lib64/portage/pym/_emerge/__init__.py", line 2154, in _start_task task.start() File "//usr/lib64/portage/pym/_emerge/__init__.py", line 1836, in start self._start() File "//usr/lib64/portage/pym/_emerge/__init__.py", line 2725, in _start self._prefetch_exit(prefetcher) File "//usr/lib64/portage/pym/_emerge/__init__.py", line 2738, in _prefetch_exit retval = fetcher.execute() File "//usr/lib64/portage/pym/_emerge/__init__.py", line 1751, in execute mydbapi=portdb, tree="porttree") File "//usr/lib64/portage/pym/portage/__init__.py", line 6156, in doebuild fetchme, mysettings, listonly=listonly, fetchonly=fetchonly): File "//usr/lib64/portage/pym/portage/__init__.py", line 3867, in fetch mysize = os.stat(myfile_path).st_size OSError: [Errno 116] Stale NFS file handle: '/usr/gentoo-nfs/portage/distfiles/busybox-1.13.4.tar.bz2' I think we should handle ENOENT and ESTALE in the same way.