Skip to content

Commit 12ffc03

Browse files
authored
Merge pull request #6969 from kozlovsky/fix/shutdown_request_resending
Re-send shutdown request from GUI to Core if the previous shutdown request was canceled
2 parents b75fa1b + e3f2bf5 commit 12ffc03

File tree

5 files changed

+19
-2
lines changed

5 files changed

+19
-2
lines changed

Diff for: src/tribler/core/components/base.py

+1
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,7 @@ def set_startup_exception(self, exc: Exception):
172172
self._startup_exception = exc
173173

174174
async def shutdown(self):
175+
self.logger.info('Session shutdown process started')
175176
await gather(*[create_task(component.stop()) for component in self.components.values()])
176177

177178
def __enter__(self):

Diff for: src/tribler/core/components/restapi/rest/shutdown_endpoint.py

+1
Original file line numberDiff line numberDiff line change
@@ -36,5 +36,6 @@ def setup_routes(self):
3636
}
3737
)
3838
async def shutdown(self, request):
39+
self._logger.info('Received a shutdown request from GUI')
3940
self.shutdown_callback()
4041
return RESTResponse({"shutdown": True})

Diff for: src/tribler/core/start_core.py

+1
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ async def core_session(config: TriblerConfig, components: List[Component]):
101101

102102
# SHUTDOWN
103103
await session.shutdown_event.wait()
104+
logger.info('Shutdown event fired')
104105

105106
if not config.gui_test_mode:
106107
session.notifier[notifications.tribler_shutdown_state]("Saving configuration...")

Diff for: src/tribler/gui/core_manager.py

+15-2
Original file line numberDiff line numberDiff line change
@@ -146,9 +146,22 @@ def stop(self, quit_app_on_core_finished=True):
146146

147147
need_to_shutdown_core = (self.core_process or self.core_connected) and not self.core_finished
148148
if need_to_shutdown_core:
149-
self._logger.info("Sending shutdown request to Tribler Core")
150149
self.events_manager.shutting_down = True
151-
TriblerNetworkRequest("shutdown", lambda _: None, method="PUT", priority=QNetworkRequest.HighPriority)
150+
151+
def shutdown_request_processed(response):
152+
self._logger.info(f"Shutdown request was processed by Core. Response: {response}")
153+
154+
def send_shutdown_request(initial=False):
155+
if initial:
156+
self._logger.info("Sending shutdown request to Tribler Core")
157+
else:
158+
self._logger.warning("Re-sending shutdown request to Tribler Core")
159+
160+
TriblerNetworkRequest("shutdown", shutdown_request_processed, method="PUT",
161+
priority=QNetworkRequest.HighPriority, on_cancel=send_shutdown_request)
162+
163+
send_shutdown_request(initial=True)
164+
152165
elif self.should_quit_app_on_core_finished:
153166
self._logger.info('Core finished, quitting GUI application')
154167
self.app_manager.quit_application()

Diff for: src/tribler/gui/tribler_request_manager.py

+1
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,7 @@ def cancel_request(self):
245245
"""
246246
Cancel the request by aborting the reply handle and calling on_cancel if available.
247247
"""
248+
logging.warning(f'Request from GUI to Core was canceled: {self.url}')
248249
if self.reply:
249250
self.reply.abort()
250251
self.on_cancel()

0 commit comments

Comments
 (0)