Mailing List Archive

CTRL-C and pre-merge checks
Hello list,

I've just started an emerge -e world to run overnight, and I realised I'd
forgotten to mount /boot (for intel-microcode), so I hit CTRL-C to abort. It
took several dozen attempts, because pre-merge checks were in progress. It
seems that this operation doesn't pass the interrupt up the calling chain, as
other operations do.

Should I report a bug?

--
Regards,
Peter.
Re: CTRL-C and pre-merge checks [ In reply to ]
On Tuesday, 6 April 2021 23:08:17 BST Peter Humphrey wrote:
> Hello list,
>
> I've just started an emerge -e world to run overnight, and I realised I'd
> forgotten to mount /boot (for intel-microcode), so I hit CTRL-C to abort. It
> took several dozen attempts, because pre-merge checks were in progress. It
> seems that this operation doesn't pass the interrupt up the calling chain,
> as other operations do.
>
> Should I report a bug?

I have noticed the same when I pause a compilation, especially on big packages
with a high number of make jobs. I always took this to mean the CPU thread
pipes were full and until they are processed the pause instruction has to wait
for its turn. Slower PCs take longer time and since I'm not running an RT
kernel for emerge, I never thought of it as a bug. However, if more learned
contributors can explain this as a bug, I'll be happy to learn something new.
:-)
Re: CTRL-C and pre-merge checks [ In reply to ]
On Wednesday, 7 April 2021 07:53:09 BST Michael wrote:
> On Tuesday, 6 April 2021 23:08:17 BST Peter Humphrey wrote:
> > Hello list,
> >
> > I've just started an emerge -e world to run overnight, and I realised I'd
> > forgotten to mount /boot (for intel-microcode), so I hit CTRL-C to abort.
> > It took several dozen attempts, because pre-merge checks were in
> > progress. It seems that this operation doesn't pass the interrupt up the
> > calling chain, as other operations do.
> >
> > Should I report a bug?
>
> I have noticed the same when I pause a compilation, especially on big
> packages with a high number of make jobs. I always took this to mean the
> CPU thread pipes were full and until they are processed the pause
> instruction has to wait for its turn. Slower PCs take longer time and
> since I'm not running an RT kernel for emerge, I never thought of it as a
> bug. However, if more learned contributors can explain this as a bug, I'll
> be happy to learn something new.
> :-)

That doesn't sound like the same thing. I'm aborting, not suspending. How do
you do that, anyway? CTRL-S/Q?

The problem is that in every atomic process but this one, interrupting it
causes the calling function to be aborted in turn, and so on up and out. A bit
like popping things off a stack until it's empty. In the case of pre-merge
checks, that doesn't happen; the next check is started regardless. That's a
lot of key stabs in a large emerge task.

--
Regards,
Peter.