Is Overpass sending SIGWINCH to Apache?

I was attempting to run some complex queries using my local Overpass instance and found that Apache was getting shut down with SIGWINCH. That signal tells Apache to perform a graceful shutdown.

There’s nothing but Overpass and Apache running on the system, and there’s nothing else that would send a signal to Apache other than one of those two processes.

Is the Overpass interpreter sending that signal? If so, why?

I’m sorry for the late answer.

I was attempting to run some complex queries using my local Overpass > instance and found that Apache was getting shut down with SIGWINCH.
That > signal tells Apache to perform a graceful shutdown.[…]> Is the
Overpass interpreter sending that signal? If so, why?
No, the Overpass API does not send a signal towards Apache. It has no
source code to figure out whether an Apache is running at all. It has
also no point in source code where it is sending SIGWINCH to anyone or
even a variable signal.

The dispatcher does since the newest version send a SIGTERM to a running
update_from_dir or update_database. This shall simplify shutdown,
because that way kill $pid where $pid is the dispatcher process does
not right thing. Also apply_osc_to_db and fetch_and_apply send
SIGTERM to update_from_dir for the same reason and terminate if they
figure out that update_from_dir has been forcefully stopped.

Still no SIGWINCH involved. The most plausible way this could happen is
that systemd decided for whatever reason to stop Apache. This can happen
if one decided to run all of Overpass in a single docker container, but
the recommended Docker image is on purpose split between Apache and the
dispatcher. AFAIK you do not run in Docker at all, so this will not be
the mechanism, but maybe something along that propagation channel.

1 Like