マンハッタンのパークアベニューが通行規制中2017年09月19日 12時41分38秒

国連の会議で、マンハッタンのパークアベニューを中心に、自動車の東西に移動できる道が大きく通行規制中。グランドセントラル辺りから、セントラルパーク近くまで、ほとんど曲がれない模様。

57 番の大通りは東西に動けるが、それより南は無理な模様。渋滞が特に激しいので、ニューヨークでの車の運転は普段以上に時間と注意が必要そう。

cd: ..: Permission denied by newvers.sh2017年09月13日 11時10分32秒

FreeBSD で一般ユーザで buildkernel をするとエラーが出るようになった。11.1-RELEASE を作ったときは、自分のアカウントで出来たから、current と 11-STABLE が影響の対象だと思う。uyota で buildkernel をすると、無限ループに陥る。root で buildkernel をすると問題はない。

少し実験をする。make buildkernel から問題のあるコマンドだけを抜き取っった。newvers.sh が原因のようだ。

% MAKE=/usr/obj/usr/src/make.i386/bmake sh /usr/src/sys/conf/newvers.sh  GENERIC
cd: ..: Permission denied
cd: ..: Permission denied
sh に -x を渡して、実行されているコマンドを見る。
env MAKE=/usr/obj/usr/src/make.i386/bmake sh -x /usr/src/sys/conf/newvers.sh  GENERIC

+ [ -z '' ]
+ dirname /usr/src/sys/conf/newvers.sh
+ SYSDIR=/usr/src/sys/conf/..
...
+ findvcs .git
+ local savedir
+ pwd
+ savedir=/usr/src
+ cd /usr/src/sys/conf/../..
+ pwd
+ [ /usr/src '!=' / ]
+ [ -e ./.git ]
+ cd ..
+ pwd
+ [ /usr '!=' / ]
+ [ -e ./.git ]
+ cd ..
cd: ..: Permission denied
findvcs で無限ループに陥っているようだ。どうも /usr からは / へ .. で移動できていない様だ。取り合えず、該当する部分を見てみる。
findvcs()
{
        local savedir

        savedir=$(pwd)
        cd ${SYSDIR}/..
        while [ $(pwd) != "/" ]; do
                if [ -e "./$1" ]; then
while ループの pwd が成功しないため、while ループが無限ループに陥っている。

今まで目撃したことの無かった現象なので、気になったのでテスト。

% cd /usr/src
% df .
Filesystem  1K-blocks    Used   Avail Capacity  Mounted on
/dev/da2s2f   5061628 2584592 2072108    56%    /usr/src
% cd ..
% cd ..
..: Permission denied.
% df -k .
Filesystem   1024-blocks    Used   Avail Capacity  Mounted on
/dev/ada0s3d     7103150 1625446 4909452    25%    /usr
% pwd -P
/usr
% pwd
/usr
% cd ..
..: Permission denied.
% ls -ld /usr
drwxr-xr-x  19 root  wheel  512 Jun 18 13:42 /usr
% ls -ld /
drwxr-xr-x  23 root  wheel  1024 Sep 26 21:39 /
/usr/src から、/usr へは問題なく cd .. が出来ているが、/usr から / へは出来ていないようだ。ディレクトリへのアクセス権限も問題ない。

原因は分からないが、該当箇所を /usr と比較することで、一時的な回避は出来る。buildkernel は /usr/src から行うので、/usr までみれば十分だ。

        while [ $(pwd) != "/usr" ]; do

zfs send -R を受け取るのは zfs receive -d が良さそうだ2017年08月14日 12時23分46秒

ZFS に保存している写真のファイルシステムをバックアップすることにした。
zfs list -t all
...
zfs/pict                 304G  92.4G   301G  /mnt/zfs/pict
zfs/pict@2017_02_26     1.15G      -   283G  -
zfs/pict@2017_07_05     1.36G      -   299G  -
zfs/pict@2017_08_13     11.6K      -   301G  -
ファイルに間違って重複があり、差分のみをファイルから取り除いた。そのため、スナップショットに元の巨大な重複ファイルが野持ってしまったので、昨年までのスナップショットを消した。そのため、スナップショットの数は少ない。差分で複製するとなると、スナップショットが少ないと、不便だ。

スナップショット名を指定した形で試したら失敗した。

$ zfs send -R zfs/pict@2017_08_13 | zfs receive bkup/camera@2017_08_13

 cannot receive: cannot specify snapshot name for multi-snapshot stream
 warning: cannot send 'zfs/pict@2017_02_26': Broken pipe
 warning: cannot send 'zfs/pict@2017_07_05': Broken pipe
 warning: cannot send 'zfs/pict@2017_08_13': Broken pipe
そこで、receive の -d オプションを利用。
$ zfs send -R zfs/pict@2017_08_13 | zfs receive -d -v bkup/camera
これで、無事に複製できたようだ。send と receive を同時に行う場合は、receive 側に -v を付けた方が見やすくエラーも分かりやすい。

FreeBSD に openssh SA2017年08月11日 13時20分17秒

FreeBSD-SA-17:06.opensshの Security Advisory が出ている。対象は、サポートされている全てのバージョン。ssh/ssl 関連は久しぶり。問題点は、パスワードの長さの点検をしていなかったらしい。

パッチを当てずに回避をするには /etc/ssh/sshd_config の PasswordAuthentication を無効化して、sshd を再起動すればよい。

uma_zone_reserve_kva を調査2017年08月10日 13時41分59秒

uma_zone_reserve_kva で割り当てたメモリはどのように解放すれば興味があって、調べている。
keg = zone_first_keg(zone);
...
kva = kva_alloc((vm_size_t)pages * PAGE_SIZE);
uma_zone_reserve_kva は kva_alloc を呼んでいる。

買ってから初めてのパンク2017年08月09日 12時43分25秒

Sirrus Sportを購入してから初めてのパンク。

最初はゴムが劣化したのかと思ったのだが、タイヤを外して見ると、チューブに穴が空いていた。修理の時にタイヤの内側を目視して、針が刺さっていないのを点検したが、十分では無かったため、交換してすぐのチューブにまた穴が空いてしまった。

そこで、もう一度交換し直した。今度はタイヤの接地面をくまなく調べた。そうすると、結構長い針が二本も出てきた。折角だったので、一回り調べてみると、細かいガラスの破片も結構出てきた。

今度からは、もっとしっかりと刺抜きをしなければ。

ニューヨークがさらに寒い2017年08月07日 12時30分08秒

先週は少し肌寒いと思っていたが、月曜日は特に寒かった。日曜日の早朝に雨が降り、冷えていた。月曜日の九時ぐらいから雨が降り始め、十時には土砂ぶり。一日中強めの雨が降っていた。寒くて、長袖長ズボン。窓も寒いため閉めた。気温は華氏 70 度で、およそ、摂氏二十度。

今年の夏は、全体的に気温が低め。

ld を壊したら Invalid bfd target のエラーが2017年08月04日 14時58分58秒

不慮の電源断で、ファイルが破損したようだ。そのため、buildworld で ld がエラーを起こした。
/usr/bin/ld: can't set BFD default target to `i386-unknownfreebsd': Invalid bfd target
と止まってしまった。

他にも

make[2]: "/usr/src/share/mk/bsd.linker.mk" line 47: warning: Unable to determine linker type from LD=ld
make[2]: "/usr/src/share/mk/bsd.linker.mk" line 56: warning: Unknown linker from LD=ld: none, defaulting to bfd
とも出ていたので、mk ファイルがおかしいのかと最初は思った。ld--version を試すと、Invalid bfd target と出たので、ld 自体が壊れていると判断し、/usr/obj 以下の ld と bfd に関連しそうなものを削除。gnu やら usr.bin 以下に幾つかあった。

その後は、問題が解消したようで、エラーも出なくなった。

ニューヨークは寒い2017年07月31日 14時11分45秒

一週間程寒い日が続いている。夜は、窓を開けたままで寝ると寒くなるくらい。夜に、長袖や少し厚めの布団を掛けても大丈夫なぐらい。自転車で通勤するとさすがに汗をかくが、走っていて暑苦しさは無い。

昼間は涼しくて過ごしやすいが、流石に七月にこれではもの足りない。

FreeBSD 11.1-RELAESE の Laundry が大きすぎ2017年07月29日 08時10分55秒

Laundry は 新しいカーネルメモリの状態だが、11.1-RELEASE を見ていると値が高すぎる時がある。

mdconfig で 5GB の swap 型を作り、3GB 程利用しているのだが、500MB も Laundry があるのに、200MB もスワップに書き出された。Laundry を開放すれば、わざわざディスクに書き込む必要もなさそうだが。

コードを見ると、全ての Laundry 関連の変更が 11-STABLE にきているわけでは無いような説明が見られる。