| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Avoid name collision with built-in 'buffer' function.
|
| |
|
|
|
|
|
| |
Normally EAPI doesn't contain unicode, but as in bug #359675, it can
contain practically anything if files in /var/db/pkg are corrupt.
|
|
|
|
|
|
|
| |
It's important that this metadata access happens in the parent process,
since closing of file descriptors in the subprocess can prevent access
to open database connections such as that used by the sqlite metadata
cache module.
|
|
|
|
|
| |
Metadata cache queries may not work for some databases from within a
subprocess. For example, sqlite is known to misbehave.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This code goes inside _start since it needs to execute in the parent
process.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Instead of sleeping, use os.utime to avoid mtime ambiguity.
Change-Id: I359ececca19b6be9f5997ac5c8fe6fea6ea49dd5
Review URL: http://codereview.chromium.org/6676150
|
| |
|
|
|
|
|
| |
This can be triggered by AbstractPollTask._log_poll_exception(), as
reported by Michael Haubenwallner <haubi@gentoo.org> for AIX.
|
| |
|
| |
|
|
|
|
|
| |
Since all the merge code runs inside MergeProcess now, there's no
reason to yield to the scheduler.
|
|
|
|
|
|
|
| |
The unmerge output has been mixed together with the merge output since
commit 7535cabdf2fab76fc55df83643157613dfd66be9 because
dblink._scheduler was set to None. Now it's fixed to produce separate
logs like it used to.
|
|
|
|
|
|
|
|
|
|
| |
File "pym/portage/dbapi/vartree.py", line 4043, in merge
merge_task.start()
File "pym/_emerge/AsynchronousTask.py", line 23, in start
self._start()
File "pym/_emerge/SpawnProcess.py", line 118, in _start
self._reg_id = self.scheduler.register(files.process.fileno(),
AttributeError: 'NoneType' object has no attribute 'register'
|
| |
|
|
|
|
|
|
|
|
| |
In this subprocess we don't want PORTAGE_BACKGROUND to suppress
stdout/stderr output since they are pipes. We also don't want to open
PORTAGE_LOG_FILE, since it will already be opened by the parent
process, so we set the PORTAGE_BACKGROUND="subprocess" value for use
in conditional logging code involving PORTAGE_LOG_FILE.
|
|
|
|
|
|
| |
This integrates the fix from commit
8209aeab647b1ab80a64d5931069b3533776ef75 with the asynchronous merge
changes from commit 7535cabdf2fab76fc55df83643157613dfd66be9.
|
|
|
|
|
|
|
|
| |
This allows for the scheduler to continue to run while packages are
being merged and installed, allowing for additional parallelism and
making better use of the CPUs.
Review URL: http://codereview.chromium.org/6713043
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, Portage syncs the BlockerDB before every merge. This slows
down merges considerably because it requires reading the entire vardb
from disk. Since Portage doesn't merge conflicting packages anyway, we
can optimize this by just reading the vardb at initialization and
caching that.
Change-Id: I6701926f022ef3aa2da10482fc8b09573ae24610
Review URL: http://codereview.chromium.org/6688037
|
|
|
|
|
|
| |
This allows --ask to be enabled via EMERGE_DEFAULT_OPTS, and then
temporarily disabled via the command-line. This may be useful for
programs that call emerge non-interactively, as in bug #360233.
|
| |
|
|
|
|
| |
Thanks to Dennis Schridde in bug #359681.
|
|
|
|
|
| |
Also, fix local portage.debug import so that "global portage" is
not necessary.
|
|
|
|
|
|
| |
This is a regression from commit
363a7478a100495d2e8597bc6c6d2fdac94339e0 but it's usually not
noticeable with Ctrl-C since SIGINT is propagated to nested processes.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Though this case might never have been triggered, the logic was broken
for cases in which self.cancelled was false and a task was queued. In
this case we need to call back into the scheduler until the queued task
is started or we are cancelled, whichever comes first.
|
|
|
|
|
|
|
|
|
|
|
| |
This prevents the Scheduler from hanging if the client is killed before
we can send the reply, as reported by David James:
http://codereview.chromium.org/6713003
This commit depends on ebuild-ipc (the client) opening the other side
of this fifo before it sends its request, which has already been added
in commit eff879ff0ce7dcc1ce68d5f16de1ec73051f8c18.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This should prevent the following error due to returning raw bytes,
reported in forum thread #869281:
File "pym/_emerge/BlockerDB.py", line 72, in findInstalledBlockers
portage.writemsg("!!! %s/*DEPEND: %s\n" % \
(pkg_location, atoms), noiselevel=-1)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in
position 23: ordinal not in range(128)
|
| |
|
|
|
|
|
| |
If we have running tasks, but we're not listening to these tasks,
we're going to loop forever. So throw an exception in this case.
|
|
|
|
|
| |
This should prevent "TypeError: an integer is required" raised from
waitpid when trying to cancel a prefetcher that never started.
|
| |
|
| |
|
|
|
|
|
|
| |
This is needed in order to ensure that exit listeners are called.
Subclasses call the base class cancel() method in order to inherit the
wait() call.
|