[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[mhc:01246] 遅いリンクでの mhc-sync



はじめまして。

mhc-syncで失敗することがあります。

emacsからmhc-syncを使う場合(M-x mhc-file-sync)に、ネットワークが非常に遅
い場合(ppp - 28800bpsの場合)に失敗します。

具体的には、ローカル側の.mhc-db-logには転送を行なった記録が残っているに
も関わらず、リモート側では何も行なった形跡がありません。(syncできていま
せん)

同じネットワーク環境でもshellからmhc-syncコマンドを打った時にはうまく行
きます。

どうも、remote側の処理が終る前にpipeがクローズされているようで、結果とし
てremote側のプロセスが(何もする前に)killされているようです。

試しにmhc-syncを次の用に書き換えたところremote側の処理が完了します。

      1 #!/usr/local/bin/ruby -Ke
      2 # -*- ruby -*-
      3 
      4 ### mhc-sync -- Data synchronization tool for MHC.
      5 ##
      6 ## Author:  Yoshinari Nomura <nom@xxxxxxxxxxxxx>
      7 ##
      8 ## Created: 2000/04/26
      9 ## Revised: $Date: 2000/10/30 16:43:25 $
           ・
           ・
    416     when '--' # peaceful
    417       ;;
    418     end
    419   }
    420   inout .print $DELIMITER2
→  421   dummy = inout .gets
    422
    423   logent = MhcLogEntry .new('S', Time .now, $flag_syncid)
    424   if !$flag_noharm
    425     log .add_entry(logent)
    426   else
    427     STDERR .print "C:adding log entry #{logent}\n"
    428   end
    429 end

何らかの方法でremote側の完了を待ってから(もしくはtimeoutしてから)次に進
むのが正しいと思うのですが、どうやればただしいのかわかりませんでした。

環境は
local側   FreeBSD 4.2
          ruby    1.6
          mhc     current? (CVSで2001/2/4にとってきた)
          emacs   20.7.1
          xemacs  21.1.12
remote側  Solaris 2.5.1
          ruby    1.6
          mhc     snap200112??あたり
です。

--
  橋 宏彰 <bridge@xxxxxxxxxxxx>