こんにちは。 いつの頃からか、ufs_copy の終了時にコアダンプを吐く様になって いたので調べて見ました。9.1から含まれる様になった soft updates journaling (SUJ) の変更により問題が発生する事が判りま した。
取り敢えず、MLに流します。portsメンテナの方に対応して頂けると 有難いです。 問題発生状況: コピーを行う際のソース側がデバイス、デスティネーション側がイ メージファイルである場合に発生します。 原因: ソース側に対して ufs_disk_fillout(3) を呼び出して作成した struct uufsd を bcopy(3) を使用してデスティネーション側の struct uufsd として使いまわしているので、SUJの対応に伴い追加 された d_sbcsum メンバのポインタ値もコピーされてしまう。コピー 処理後、ソース側の ufs_disk_close(3) を実行した後でデスティネー ション側の ufs_disk_close(3) を実行するので、free(3) を同じポ インタに対して2回呼び出す事になるので、この時点でコアダンプを 生成してしまう。 対策: 添付したパッチ(diff.txt)を以下の通り当ててインストールする。 make patch patch < diff.txt make make install --- 山下英美
--- work/ufs/ufs_copy.c.orig 2014-05-14 05:51:24.000000000 +0900 +++ work/ufs/ufs_copy.c 2014-05-14 05:51:30.000000000 +0900 @@ -289,6 +289,9 @@ } } bcopy(&src, &dst, sizeof(dst)); +#if __FreeBSD_version >= 900011 + dst.d_sbcsum = NULL; +#endif dst.d_name = dst_path; dst.d_fd = open(dst_path, O_CREAT | O_WRONLY, S_IRUSR | S_IWUSR ); if (dst.d_fd < 0) {
_______________________________________________ freebsd-users-jp@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp To unsubscribe, send any mail to "freebsd-users-jp-unsubscr...@freebsd.org"