Follow-up Comment #5, bug #67390 (group groff):

On Thursday, 7 August 2025 14:59:19 BST you wrote:
> Follow-up Comment #4:
>
> The commit Deri said he made in comment #1 seems not to have been pushed
> yet. Reassigning to him.
>
> Also, some of Deri's and my exchange on this ticket seems to have gone
> missing.  It happened the same day GNU-related mails seemed to be delayed by
> several hours, so maybe that has/had something to do with it.
>
> I rescued the following from my sent folder.
>
>> Phew! Thought you meant the code was not working. By "too bullish
>> again, ignoring signals" you actually meant you did not want to wait
>> "a few seconds" for it to act on the signal on an incredibly slow
>> machine.
>
> More precisely, what happened is that "BuildFoundries" noted that
> afmtodit exited with a failure status, but all it did with that
> information is set a flag to be consulted later; it continued to iterate
> over its argument list.

Thank you, you are correct - BuildFoundries does not "ignore" the error, but
schedules a warning exit to occur less than a second later.

> If the _rm_(1) command worked that way, single-mindedly iterating over
> its entire argument list regardless of incoming fatal signals, telling
> the user only at the end of its work that "oh, by the way, some fool
> attempted to interrupt me", traditional Unix users would revolt.

Gets a bit weird here! You do know that file removal is an atomic task. If rm
exited as soon as it received the signal from ctrl-c there could be FS
corruption, so instead it sets a flag which it consults at an appropriate
point, outside the atomic job, and exits. Sounds familiar.

The question then becomes, what is the most appropriate time to action the
flag? The answer depends on whether the process is destructive (rm) or
constructive (BuildFoundries). The second is repeatable, the first is not (you

can't delete the same files again). For destructive processes I agree with
you, it is very important to stop as soon as it is safe to stop (which may not

be immediately if the signal occurs during an atomic part of the task). For
constructive processes there is no hard and fast rule, it is a judgement call,

you don't want to wait too long to action the flag (1-2 seconds is probably
fine), against not giving the user complete information about problems with
the run, since you have exited before completing the run.

This unix user would never use rm without -i, and if I had to delete a large
number of files (where -i is tedious) I would run 'find ... -print' to a file,

edit to shove 'rm ' at the start, and name it as a shell script. Get a
colleague to eyeball, and run it overnight when no users are on, capturing an
error log. (This is of course in the days of big main frames (and minis) from
ICL/IBM/Sequent/Perkin Elmer with 100s of terminals, and overnight batch
runs). Its the young'uns who are punching ctrl-c on 'rm -rf' commands.

> (Modern ones might not, admittedly, and resign themselves to total data
> destruction because even disk access is much faster than it used to be.
>
> https://bsdimp.blogspot.com/2020/07/when-unix-learned-to-reboot2.html
>
> )
>
>> Perhaps you could amend the bug title to something more
>> appropriate. It must take minutes to do a full make clean; configure;
>> make; make check; make distcheck - I feel for you.
>
> I don't agree with your interpretation: by not checking the (full,
> system-level) exit status of the process you're spawning, you're
> throwing away information irrecoverably.

Incorrect! The code was checking - and setting a flag - adding the code to the

warning was appreciated, its the Intimation the signal was ignored which is
wrong.

> Also, on general application
> design principles, unless a program has a good reason

(such as wanting to give complete information on ALL the problems with the
single step of buildinmg the fonts,  rather than finding out piece-meal
requiring multiple runs).

> to be ignoring or
> blocking

neither, rather deferring,

> a symbol,

(sic)

> it should respond to that signal immediately.
> (Generally, if it has a good reason to not use a signal's default
> behavior--in most cases, dying--it should install a handler for the
> signal that sets a global flag that the main program logic routinely
> checks, and which causes the program to gracefully but expeditiously
> release resources and exit, often with a failure status.)

I see you are agreeing with my analysis above, rm does not action the signal
immediately.

> I've come to expect interactive builds to be responsive to fatal
> signals.  I don't think my experience is unusual.

The question is "How Responsive?" I consider 1-2 seconds sufficient for a
constructive task, since the bonus is you receive all information from the
run, meaning if there is more than 1 warning you are aware of both while
fixing the issues. The title implies the program is "ignoring signals" i.e.
does nothing with them, whereas your patch just shortens the time before the
run terminates by a measure of milliseconds and so, since I believe you are
proud of the accuracy of your prose, you would like another go at the title.

> So, to me, "ignoring signals"

Which you have now said it is not, just deferring acting on them some
milliseconds longer than possible.

> in this application implies "too bullish".

Why?

>
> [snip]
>
>> I shall reply over there, probably toomorrow.
>
> Looking forward to it.  Note James Cloos's reply on the groff list;[*]
> it sounds like I may have started down an incorrect path regarding these
> overloaded Greek glyphs.  His reply may save you the trouble of
> correcting me yourself.
>
Apologies, my interrupt stack keeps getting higher priority interrupts! (Still

not completely unwound yet). For the emoji query I wrote a program which built

the emoji.map straight from the .ttf font.

> [*] https://lists.gnu.org/archive/html/groff/2025-08/msg00000.html
>


    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?67390>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/

Attachment: signature.asc
Description: PGP signature

Reply via email to