Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 347299

Summary: emerge try to fetch package in not existing path
Product: Portage Development Reporter: Anton Smorodsky <edrozim>
Component: UnclassifiedAssignee: Portage team <dev-portage>
Status: VERIFIED INVALID    
Severity: normal    
Priority: High    
Version: unspecified   
Hardware: x86   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Anton Smorodsky 2010-11-30 16:09:22 UTC
Emerge failed because emerge try to save tar.gz file to path '/home/antons/1/PackageName.tar.gz' while '1' is file and not a folder . Problem reproduces for any package I try to emerge. 

Important note : After I delete this file emerge return to normal behavior to store packages in /usr/portage/distfiles/

Reproducible: Always

Steps to Reproduce:
1. Connect to host via ssh with non root user
2. execute 'su' to became a root
3. execute 'emerge -aqv screen'  ( also I tried 'emerge -aqv tcpdump')
4. accept to emerge package

Actual Results:  
emerge will fail with errors http://paste.pocoo.org/show/298073/

Expected Results:  
emerge passed

my emerge --info http://paste.pocoo.org/show/298075/
Comment 1 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2010-11-30 16:11:28 UTC
Don't use a pastebin - it is not permanent, please attach emerge --info and the traceback in the bug here.
Comment 2 Zac Medico gentoo-dev 2010-11-30 16:17:06 UTC
Please post/attach your info directly in the bug report rather than using paste services that may expire. Here's the traceback:

Traceback (most recent call last):
  File "/usr/bin/emerge", line 43, in <module>
    retval = emerge_main()
  File "/usr/lib/portage/pym/_emerge/main.py", line 1698, in emerge_main
    myopts, myaction, myfiles, spinner)
  File "/usr/lib/portage/pym/_emerge/actions.py", line 443, in action_build
    retval = mergetask.merge()
  File "/usr/lib/portage/pym/_emerge/Scheduler.py", line 1129, in merge
    rval = self._merge()
  File "/usr/lib/portage/pym/_emerge/Scheduler.py", line 1447, in _merge
    self._main_loop()
  File "/usr/lib/portage/pym/_emerge/Scheduler.py", line 1596, in _main_loop
    self._poll_loop()
  File "/usr/lib/portage/pym/_emerge/PollScheduler.py", line 138, in _poll_loop
    handler(f, event)
  File "/usr/lib/portage/pym/_emerge/SpawnProcess.py", line 222, in _dummy_handler
    self._unregister_if_appropriate(event)
  File "/usr/lib/portage/pym/_emerge/AbstractPollTask.py", line 49, in _unregister_if_appropriate
    self.wait()
  File "/usr/lib/portage/pym/_emerge/AsynchronousTask.py", line 41, in wait
    self._wait_hook()
  File "/usr/lib/portage/pym/_emerge/AsynchronousTask.py", line 114, in _wait_hook
    self._exit_listener_stack.pop()(self)
  File "/usr/lib/portage/pym/_emerge/EbuildPhase.py", line 182, in _ebuild_exit
    self.wait()
  File "/usr/lib/portage/pym/_emerge/AsynchronousTask.py", line 41, in wait
    self._wait_hook()
  File "/usr/lib/portage/pym/_emerge/AsynchronousTask.py", line 114, in _wait_hook
    self._exit_listener_stack.pop()(self)
  File "/usr/lib/portage/pym/_emerge/EbuildBuild.py", line 152, in _pre_clean_exit
    self._start_task(fetcher, self._fetch_exit)
  File "/usr/lib/portage/pym/_emerge/CompositeTask.py", line 118, in _start_task
    task.start()
  File "/usr/lib/portage/pym/_emerge/AsynchronousTask.py", line 23, in start
    self._start()
  File "/usr/lib/portage/pym/_emerge/EbuildFetcher.py", line 72, in _start
    SpawnProcess._start(self)
  File "/usr/lib/portage/pym/_emerge/SpawnProcess.py", line 120, in _start
    retval = self._spawn(self.args, **kwargs)
  File "/usr/lib/portage/pym/_emerge/EbuildFetcher.py", line 98, in _spawn
    if fetch(self._uri_map, self._settings, fetchonly=self.fetchonly):
  File "/usr/lib/portage/pym/portage/package/ebuild/fetch.py", line 682, in fetch
    shutil.copyfile(mirror_file, myfile_path)
  File "/usr/lib/python2.6/shutil.py", line 50, in copyfile
    with open(src, 'rb') as fsrc:
IOError: [Errno 20] Not a directory: u'/home/antons/1/screen-4.0.3.tar.gz'
close failed in file object destructor:
IOError: [Errno 9] Bad file descriptor
close failed in file object destructor:
IOError: [Errno 9] Bad file descriptor
close failed in file object destructor:
IOError: [Errno 9] Bad file descriptor
 * Fetch failed for 'app-misc/screen-4.0.3', Log file:
 *  '/var/tmp/portage/app-misc/screen-4.0.3/temp/build.log'
Comment 3 Zac Medico gentoo-dev 2010-11-30 16:23:18 UTC
Do you have /home/antons/1 configured as a local mirror inside /etc/portage/mirrors? Apparently we need to verify that such mirrors are directories before trying to use them.
Comment 4 Anton Smorodsky 2010-11-30 19:19:04 UTC
(In reply to comment #3)
> Do you have /home/antons/1 configured as a local mirror inside
> /etc/portage/mirrors? Apparently we need to verify that such mirrors are
> directories before trying to use them.
> 

... you are right I have 'local /home/antons/1' record inside my '/etc/portage/mirrors'. But is very strange because I never edit this file ....

Anyway I think this record close the issue ...
Sorry for your wasted time :(