mirror of
				https://github.com/iv-org/invidious.git
				synced 2025-10-31 12:42:09 +00:00 
			
		
		
		
	SigHelper: Reconnect to signature helper (#4991)
Fijxu have been using it for more than 3 weeks on their instance and they report that it works really well. This only works if 'inv_sig_helper' itself crashes and restarts (via systemd or docker restart policy) but it will not work if 'inv_sig_helper' hangs and stops responding to invidious (but this is an issue with 'inv_sig_helper', not Invidious). Closes issue 4926
This commit is contained in:
		| @@ -175,8 +175,9 @@ module Invidious::SigHelper | ||||
|     @queue = {} of TransactionID => Transaction | ||||
|  | ||||
|     @conn : Connection | ||||
|     @uri_or_path : String | ||||
|  | ||||
|     def initialize(uri_or_path) | ||||
|     def initialize(@uri_or_path) | ||||
|       @conn = Connection.new(uri_or_path) | ||||
|       listen | ||||
|     end | ||||
| @@ -186,10 +187,26 @@ module Invidious::SigHelper | ||||
|  | ||||
|       LOGGER.debug("SigHelper: Multiplexor listening") | ||||
|  | ||||
|       # TODO: reopen socket if unexpectedly closed | ||||
|       spawn do | ||||
|         loop do | ||||
|           receive_data | ||||
|           begin | ||||
|             receive_data | ||||
|           rescue ex | ||||
|             LOGGER.info("SigHelper: Connection to helper died with '#{ex.message}' trying to reconnect...") | ||||
|             # We close the socket because for some reason is not closed. | ||||
|             @conn.close | ||||
|             loop do | ||||
|               begin | ||||
|                 @conn = Connection.new(@uri_or_path) | ||||
|                 LOGGER.info("SigHelper: Reconnected to SigHelper!") | ||||
|               rescue ex | ||||
|                 LOGGER.debug("SigHelper: Reconnection to helper unsuccessful with error '#{ex.message}'. Retrying") | ||||
|                 sleep 500.milliseconds | ||||
|                 next | ||||
|               end | ||||
|               break if !@conn.closed? | ||||
|             end | ||||
|           end | ||||
|           Fiber.yield | ||||
|         end | ||||
|       end | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Samantaz Fox
					Samantaz Fox