チケット #44691

C-Kermit 9.0.305 Alpha.05 以降からの受信が行えない

登録: 2022-05-27 23:34 最終更新: 2023-01-10 21:50

報告者:
担当者:
(未割り当て)
チケットの種類:
状況:
完了
コンポーネント:
マイルストーン:
優先度:
5 - 中
重要度:
5 - 中
解決法:
修正済み
ファイル:
なし
投票
点数: 0
No votes
0.0% (0/0)
0.0% (0/0)

詳細

Kermitでのファイル受信が行えない。ファイルの受信を行うと、Kermit受信ダイアログが出て最初のパケットを受け取った所で止まる。

バージョン

以下の組み合わせで発生

  • ローカル側: Tera Term 4.73以降、5.0alpha1
  • リモート側: C-Kermit:9.0.305.Alpha.06, 10.0 Beta.02

ローカル側が Tera Term 4.72 までや、リモート側が C-Kermit 9.0.302, 9.0.304, G-Kermit CU-1.00 では発生しない。

チケットの履歴 (16 件中 3 件表示)

2022-05-27 23:34 更新者: doda
  • 新しいチケット "kermitでの受信が行えない" が作成されました
2022-06-16 20:54 更新者: nmaya
コメント

発生する・しない環境の境目

C-Kermit 9.0.305 Alpha.049.0.305 Alpha.05
Tera Term 4.72OKOK
4.73-OKNG

2022-06-20 01:50 更新者: nmaya
コメント

4.72 から 4.73 までの kermit.c の変更は r4802, r4803, r4810, r4812, r4816, r4824, r4832, r4836, r4837, r4838, r4839

r4801 では問題が起こらず、r4802 から発生する。

cf. 変更の経緯は 旧ユーザML teraterm:1126 以降

2022-06-20 08:50 更新者: nmaya
コメント

cku305-alpha05 からは Long Packet (2バイト目が0) が送られてきている。

cku305-alpha04
0x030074E0  01 7b 22 44 23 23 69 6e 63 6c 75 64 65 20 22 63  .{"D##include "c
0x030074F0  6b 63 73 79 6d 2e 68 22 23 4d 23 4a 63 68 61 72  kcsym.h"#M#Jchar
0x03007500  20 2a 77 61 72 74 76 20 3d 20 22 57 61 72 74 20   *wartv = "Wart 
0x03007510  56 65 72 73 69 6f 6e 20 32 2e 31 35 2c 20 31 38  Version 2.15, 18
0x03007520  20 53 65 70 74 65 6d 62 65 72 20 32 30 32 30 20   September 2020 
0x03007530  22 3b 23 4d 23 4a 23 4d 23 4a 23 23 30 cd cd cd  ";#M#J#M#J##0ヘヘヘ

cku305-alpha05
0x02EAEA20  01 20 22 44 21 20 2a 23 23 69 6e 63 6c 75 64 65  . "D! *##include
0x02EAEA30  20 22 63 6b 63 73 79 6d 2e 68 22 23 4d 23 4a 63   "ckcsym.h"#M#Jc
0x02EAEA40  68 61 72 20 2a 77 61 72 74 76 20 3d 20 22 57 61  har *wartv = "Wa
0x02EAEA50  72 74 20 56 65 72 73 69 6f 6e 20 32 2e 31 35 2c  rt Version 2.15,
0x02EAEA60  20 31 38 20 53 65 70 74 65 6d 62 65 72 20 32 30   18 September 20
0x02EAEA70  32 30 20 22 3b 23 4d 23 4a 23 4d 23 4a 23 23 cd  20 ";#M#J#M#J##ヘ

Tera Term は TERATERM.INI で KmtLongPacket=on としないと、Long Packet を扱わない。送信しない。

onになっていないと「私はLong Packetを受信する」とリモートに伝えないが、それでも送ってきたら受信している。

(編集済, 2022-08-23 00:53 更新者: nmaya)
2022-06-20 08:54 更新者: nmaya
コメント

現在の仕様だとこの ticket は INVALID になりますが、KmtLongPacket 設定を見て ts->KermitOpt |= KmtOptLongPacket; しています。

無条件に有効にすることもできますが、なにかの副作用を心配してこうしたのだと思います。どうしましょうか?

(編集済, 2022-08-14 13:48 更新者: nmaya)
2022-08-14 13:54 更新者: nmaya
コメント

C-Kermit 9.0.305 Alpha.05 以降は、Tera Term が「Long Packet に対応している」と応答していないのに Long Packet を送ってきています。

  • 最初に C-Kermit から来る SendInitiate
  • Tera Term からの ACK
<<<
01 39 20 53 7E 90 20 40 2D 23 59 33 7E 5E 3E 4A     .9 S~. @-#Y3~^>J
29 30 5F 5F 5F 4E 22 55 31 40 26                    )0___N"U1@&
MARK=1 LEN=25 SEQ#=0 TYPE=SendInitiate DATA_LEN=22
  Data: MAXL=94 TIME=112 NPAD=0 PADC=0 EOL=2d QCTL=# QBIN=Y CHKT=3 REPT=~ CAPAS=5e WINDO=3e MAXLX1=4a MAXLX2=29 

>>>
01 30 20 59 BF 2A 20 40 2D 23 4E 31 7E 22 20 4A     .0 Y.* @-#N1~" J
2A 58                                               *X
MARK=1 LEN=16 SEQ#=0 TYPE=ACK DATA_LEN=13

相手が C-Kermit 9.0.305 Alpha.04, C-Kermit 9.0.305 Alpha.05 で全く同じです。

C-Kermit 側のバグでしょうか?

(編集済, 2022-08-14 20:11 更新者: nmaya)
2022-08-14 20:57 更新者: nmaya
コメント

止めずに受信するようにして試してみました。

  • 305-alpha04 では、LEN=90-93(datalen=87-90) の Normal Packet が送られてきます。
  • 305-alpha05 では、LEN=94(datalen=91) の Normal Packet, LENX=93-95(datalen=92-94) の Long Packet が送られてきます。

サイズが大きくないので、サポートしていない Long Packet を意図的に送ってきている感じはしません。

Long Packet で MAXLEN が 4000 なのに 4001 のデータが飛んでくる(#44873)ことも併せて考えると、C-Kermit には

  • 305-alpha05 から MAXL ギリギリまで使うようになった
  • Long Pakcet の時に「リモート(Tera Term)の MAXL + 1」で送ってくるバグがあるのではないか
  • Normal Packet の時に「リモート(Tera Term)の MAX + 1から3」で送ってくる(ゆえに Long Packet になる)バグがあるのではないか

という感じがします。

(編集済, 2022-08-16 20:00 更新者: nmaya)
2022-08-19 02:02 更新者: nmaya
コメント

C-Kermit の挙動を The Kermit Project に報告しました。

C-Kermit 側が修正されても #44873 の問題により受信できません。

r10174 この問題があっても受信できる回避策

(編集済, 2022-08-23 20:54 更新者: nmaya)
2022-08-23 00:48 更新者: nmaya
  • チケットの種類バグ から Reminds に更新されました
  • 概要が更新されました
2022-09-03 19:12 更新者: nmaya
コメント

途中経過です。

C-Kermit 側で採取した packet.log を送りましたが、コントロールフィールドに 8bit 文字(8進の220)が含まれている、よってログファイルが壊れている、と連絡がありました。

送ったのは採取したログファイルそのものであること、受信側(Tera Term)のログにもその文字が現れていること、その文字を送っているのは C-Kermit であることを伝えました。

01 39 20 53 7E 90 20 40 2D 23 59 33 7E 5E 3E 4A     .9 S~. @-#Y3~^>J
29 30 5F 5F 5F 4E 22 55 31 40 26                    )0___N"U1@&
MARK=1 LEN=25 SEQ#=0 TYPE=SendInitiate DATA_LEN=22
  Data: MAXL=94 TIME=112 NPAD=0 PADC=0 ...

(8進の220)= 0x90 = TIME=112

そしたら、調べてみるとの返事がありました。

2022-09-15 20:25 更新者: nmaya
コメント

Normal Packet の時に「リモート(Tera Term)の MAX + 1から3」で送ってくる(ゆえに Long Packet になる)バグがあるのではないか

こちらは次のリリースで直りそうです。

「Long Packet を受信する」と言っていないのに Long Packet を送ってきても、Tera Term は Long Pakcet を受信します。

なので、これが直っても「本当に Long Packet を受信しないソフト」に対してのみ効果がある修正ということになります。

Long Pakcet の時に「リモート(Tera Term)の MAXL + 1」で送ってくるバグがあるのではないか

こちらも最初から説明しているのですが、いまいち分かってもらえていないのか、今のところ直っていません。

説明(リクエスト)を続けています。

2022-09-23 18:05 更新者: nmaya
コメント

Long Pakcet の時に「リモート(Tera Term)の MAXL + 1」で送ってくるバグがあるのではないか

直してもらえました。おそらくC-Kermit 10.0 Beta.05 が出たら修正されていると思います。

2022-10-04 21:32 更新者: nmaya
コメント

10.0 Beta.05 が出ました。問題なさそうです。

https://www.kermitproject.org/ftp/kermit/test/tar/cku400-beta05.tar.gz

(編集済, 2022-10-04 21:32 更新者: nmaya)
2022-10-08 08:32 更新者: nmaya
  • 解決法なし から 修正済み に更新されました
コメント

r10302 で 4-stable にマージしました。

2023-01-10 21:50 更新者: nmaya
  • 状況オープン から 完了 に更新されました
2023-01-10 21:50 更新者: nmaya

添付ファイルリスト

添付ファイルはありません

編集

ログインしていません。ログインしていない状態では、コメントに記載者の記録が残りません。 » ログインする