@@ -484,6 +484,19 @@ static int get_exporter(struct transport *transport,
484484 return start_command (fastexport );
485485}
486486
487+ static void check_helper_status (struct helper_data * data )
488+ {
489+ int pid , status ;
490+
491+ pid = waitpid (data -> helper -> pid , & status , WNOHANG );
492+ if (pid < 0 )
493+ die ("Could not retrieve status of remote helper '%s'" ,
494+ data -> name );
495+ if (pid > 0 && WIFEXITED (status ))
496+ die ("Remote helper '%s' died with %d" ,
497+ data -> name , WEXITSTATUS (status ));
498+ }
499+
487500static int fetch_with_import (struct transport * transport ,
488501 int nr_heads , struct ref * * to_fetch )
489502{
@@ -520,6 +533,7 @@ static int fetch_with_import(struct transport *transport,
520533
521534 if (finish_command (& fastimport ))
522535 die (_ ("error while running fast-import" ));
536+ check_helper_status (data );
523537
524538 /*
525539 * The fast-import stream of a remote helper that advertises
@@ -1124,6 +1138,7 @@ static int push_refs_with_export(struct transport *transport,
11241138
11251139 if (finish_command (& exporter ))
11261140 die (_ ("error while running fast-export" ));
1141+ check_helper_status (data );
11271142 if (push_update_refs_status (data , remote_refs , flags ))
11281143 return 1 ;
11291144
0 commit comments