Why is pressing the «Save» button on a backend category page gives me no response after considerable time?

Thank you but none of the above helps in my case: 2 stores, ~800 categories, go to 2nd store (2nd language) make a category name change and press Save. httpd consumes above 2G RAM and no response after considerable time. Nothing of value in logs. Increased memory limit to -1 hoping for results but still waiting…

Does the browser’s request (on the “Save” button clicking) reach the server?

Absolutely. It goes all the way back and hits the db. Then it seems to be doing what I reported here. https://github.com/magento/magento2/issues/9706

Seems to be going through a loop that leaks or something is horribly wrong on my side.

What is the server’s HTTP response code?

Never gets back. Receives the response and eventually runs out of memory. I get a PHP error on the memory allocation.

How did you know that the failure is caused by a PHP error on the memory allocation?

Explaining:

Go into category tree. Pick top category with 15.000+ products in it. Select it and change name. Press Save.

AJAX sent, no change in database, no request pending apart from the refresh request to get back the response from the AJAX save.

I traced the db SQL calls and it seems to be going through each product record in the category to check if a URL rewrite is needed (seems to anyway).

During this long process memory keeps climbing.

PHP error log states

Fatal error: Allowed memory size of 805306368 bytes exhausted (tried to allocate 128 bytes) in

Same that I get on the browser

If you were to follow the Advice 3, the PHP interpreter will send the memory limit error message straight to you browser, and even if it is an AJAX response, then you could see it in the browser’s developer console, so it looks like “none of the above helps in your case” just because you did not implement the Advice 3, but it saves a lot of time during a store’s development.

That is incorrect. All errors are reported. Too bad you took it the wrong way Dmitry. I am now tracing code.

There is no error reported in terms of code, only the memory allocation I already shared with you.

Does it not look to you that the code is for some reason looping and not releasing?

The topic’s title is «How to diagnose Magento 2 errors».
It means: «how can I get a diagnostics message when something goes wrong?».
It your case the Advice 3 brings such diagnostics message.
This topic is not about how to solve problems, it is about how to diagnose them.