Vine Linux バグトラッキングシステム - Vine Linux
課題の詳細を表示
0000112Vine Linux1 バグ公開2006-09-01 21:342006-12-05 17:56
anonymous 
 
不明 
完了却下 
3.2 
 
x86
kernel-2.4.31-0vl1.12
0000112: kernelバージョンの違いによるMulticastのエラー
Vine 3.2 を使用しています。
立ち上げる kernel バージョンの違いによって、
Javaで作成されたMuticastソケットのインスタンスが複数作成できない
状況に直面しており、kernelに含まれるバグであると考えられます。

エラーが発生: 2.4.31-0vl1.12
エラー無し: 2.4.27-0vl7.6

同じコードを用いた再現テストは、RedHat EL3,4や、
Fedora Core 4,5では発生しません。

起動する kernel バージョンをダウングレードすれば問題ありません。

ちなみに、下記に示すコードは、ソースの公開されていない商用ソフトで
発生するエラーの原因を開発者に相談したところ、
最終的に原因として突き止めたものです。

以下にJavaのコードと、エラーメッセージ、uname -a の結果を載せます。

【Javaコード】

import java.io.*;
import java.net.*;

public class MulticastTest {

public static final int MCAST_PORT1 = 9999;
public static final int MCAST_PORT2 = 9999;

public static void main(String[] args){


MulticastSocket socket1 = null;
MulticastSocket socket2 = null;
try {
socket1 = new MulticastSocket(MCAST_PORT1);
socket2 = new MulticastSocket(MCAST_PORT2);
} catch (IOException e) {
e.printStackTrace();
System.exit(3);
}
}
}

※ MCAST_PORT1,MCAST_PORT2を異なるポートに指定した場合は成功します。


【実行結果とエラー】

$ /usr/java/jdk1.5.0_08/bin/java MulticastTest
java.net.BindException: Address already in use
at java.net.PlainDatagramSocketImpl.bind0(Native Method)
at java.net.PlainDatagramSocketImpl.bind(PlainDatagramSocketImpl.java:82)
at java.net.DatagramSocket.bind(DatagramSocket.java:368)
at java.net.MulticastSocket.<init>(MulticastSocket.java:147)
at java.net.MulticastSocket.<init>(MulticastSocket.java:112)
at MulticastTest.main(MulticastTest.java:17)


$ uname -a
Linux localhost.localdomain 2.4.31-0vl1.12 0000001 Mon Dec 26 22:22:09 JST
2005 i686 unknown
設定されていません。
課題の履歴
2006-09-01 21:34anonymous新規課題
2006-11-23 16:31kazutaka状態新規 => 完了
2006-11-23 16:31kazutaka解決状況不明 => 保留
2006-11-23 16:31kazutakaコメント追加: 0000386
2006-12-02 10:55anonymousコメント追加: 0000387
2006-12-05 17:56kazutaka解決状況保留 => 却下
2006-12-05 17:56kazutakaコメント追加: 0000388

コメント
(0000386)
kazutaka   
2006-11-23 16:31   
すぐに対応できそうにないので、
一旦保留に変更します。
(0000387)
anonymous   
2006-12-02 10:55   
Vine 4.0 で確認しましたが問題はありませんでした。

$ uname -a
Linux hogehoge 2.6.16-0vl60 0000001 SMP Fri Oct 27 03:39:46 JST 2006 i686 i686 i386 GNU/Linux
$ /usr/java/jdk1.5.0_10/bin/java MulticastTest
$

旧リリースでの旧カーネルの問題になりましたので、
ステイタスを変更しても良いのではないかと思います。
(0000388)
kazutaka   
2006-12-05 17:56   
> Vine 4.0 で確認しましたが問題はありませんでした。
>
> $ uname -a
> Linux hogehoge 2.6.16-0vl60 0000001 SMP Fri Oct 27 03:39:46 JST 2006 i686
> i686 i386 GNU/Linux
> $ /usr/java/jdk1.5.0_10/bin/java MulticastTest
> $

確認ありがとうございます。

> 旧リリースでの旧カーネルの問題になりましたので、
> ステイタスを変更しても良いのではないかと思います。

このままにしておいても対応される可能性は低いですし、
今後は 4.0 の利用を推奨するということで、却下とします。

ハラダ