2017/10/31

・・・個人的に買ってしまおうか

モータ制御評価キット

36k・・・
悩ましいところです。
プログラム作って書き込むにはE1エミュレータも必要らしいので+20k
・・・まぁ、別に会社でやればいいか。
引退して暇になったら買ってみましょう。

2017/10/29

mp4a 40と67の違い

ローカルで作成したmp4ファイルをFirefoxにドロップしたときに、音が再生できるものと再生できないものがあります。
何が違うのやら、と思っていたら、なんとなく
mp4a.67(MPEG2-AAC)とmp4a.40(MPEG4-AAC)の違いではないかと・・・

どうも環境によってはMPEG2-AACを入れたコンテナを再生してくれないっぽいです。
androidのchromeは問題なかったのですが、どうやらfirefoxだけではなく、iphoneもダメな模様。

MPEG2-AACにいくつか機能追加したのがMPEG4-AACらしいのですが、なんで再生してくれないのか・・。
基本的なアルゴリズム自体に違いはなく、追加技術を使用しなければヘッダの一部分が1ビット異なるだけ

・・・むしろ、ヘッダだけ書き換えてみればよいのか?

というわけでaac→m4a変換時にmp4boxで:mpeg4とオプションを付けてみたらfirefoxでも音声が再生されるようになりました。
めでたしめでたし。

Hyper-Vとdebianとntp

・・・確かに、大昔に設定したっきり確認していなかったのも悪かったですが

最近のdebianカーネルにはhyper-v用のLISが入っているのですが、そこにtimesyncなるものが入っています。
というか、多分wheezyとかetchのころからいろいろ入り始めたのですが、既に設定済みで問題なく動いていたntpとかあまり確認していませんでした。

で。
hyper-vにはゲストとホストの時刻を同期してくれる機能があります。
なので、ゲスト側でntpで時刻を合わせようとしてもホスト側から強制的に上書きされる、という現象が・・・

なんかntpq -pをするとオフセット(600ms程)があるな~と思っていたらこいつか!
というわけでゲストでntpを設定するならhyper-vのVM設定で時刻の同期を外した方が良いと思われます。

元々はntp poolでちゃんと同期できてないなぁとか思って調べていたらpoolは関係ない罠

→hyper-vの設定で外してもダメっぽく、すぐに同期が外れます。
結局VMでの時間管理という本質的な問題になってくるのかもしれませんね
→数日放っておいたら同期するようになってきました。
・・・よくわからん

2017/10/26

犯人はこの中にいる!

Oct 25 12:55:17 debian kernel: [49542.112087] INFO: task apache2:18885 blocked for more than 120 seconds.
Oct 25 12:55:17 debian kernel: [49542.112100] Not tainted 4.9.0-4-amd64 #1 Debian 4.9.51-1
Oct 25 12:55:17 debian kernel: [49542.112108] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
Oct 25 12:55:17 debian kernel: [49542.112118] apache2 D 0 18885 1517 0x20020000
Oct 25 12:55:17 debian kernel: [49542.112121] ffff96fbf7bdfc00 0000000000000000 ffff96fbfbba00c0 ffff96fbfc618240
Oct 25 12:55:17 debian kernel: [49542.112122] ffffffff9120e500 ffffb7cf85597888 ffffffff90c038e3 ffff96fbfbb66c00
Oct 25 12:55:17 debian kernel: [49542.112123] 00ffffff906a9865 ffff96fbfc618240 ffff96fbf80d3140 ffff96fbfbba00c0
Oct 25 12:55:17 debian kernel: [49542.112125] Call Trace:
Oct 25 12:55:17 debian kernel: [49542.112128] [] ? __schedule+0x233/0x6d0
Oct 25 12:55:17 debian kernel: [49542.112130] [] ? schedule+0x32/0x80
Oct 25 12:55:17 debian kernel: [49542.112131] [] ? schedule_preempt_disabled+0xa/0x10
Oct 25 12:55:17 debian kernel: [49542.112132] [] ? __mutex_lock_slowpath+0xb4/0x130
Oct 25 12:55:17 debian kernel: [49542.112134] [] ? mutex_lock+0x1b/0x30
Oct 25 12:55:17 debian kernel: [49542.112146] [] ? cifs_reconnect_tcon+0x8f/0x320 [cifs]
Oct 25 12:55:17 debian kernel: [49542.112152] [] ? smb_init+0x27/0x80 [cifs]
Oct 25 12:55:17 debian kernel: [49542.112158] [] ? CIFSSMBQPathInfo+0x66/0x310 [cifs]
Oct 25 12:55:17 debian kernel: [49542.112166] [] ? cifs_query_path_info+0x6c/0x180 [cifs]
Oct 25 12:55:17 debian kernel: [49542.112167] [] ? schedule_hrtimeout_range_clock+0xc5/0x1a0
Oct 25 12:55:17 debian kernel: [49542.112168] [] ? list_del+0x9/0x30
Oct 25 12:55:17 debian kernel: [49542.112169] [] ? remove_wait_queue+0x20/0x30
Oct 25 12:55:17 debian kernel: [49542.112170] [] ? poll_freewait+0x45/0xa0
Oct 25 12:55:17 debian kernel: [49542.112177] [] ? cifs_get_inode_info+0x402/0x920 [cifs]
Oct 25 12:55:17 debian kernel: [49542.112184] [] ? build_path_from_dentry+0xeb/0x3f0 [cifs]
Oct 25 12:55:17 debian kernel: [49542.112190] [] ? build_path_from_dentry+0x15e/0x3f0 [cifs]
Oct 25 12:55:17 debian kernel: [49542.112197] [] ? cifs_revalidate_dentry_attr+0x1d3/0x250 [cifs]
Oct 25 12:55:17 debian kernel: [49542.112203] [] ? cifs_revalidate_dentry+0xf/0x20 [cifs]
Oct 25 12:55:17 debian kernel: [49542.112209] [] ? cifs_d_revalidate+0x1e/0xa0 [cifs]
Oct 25 12:55:17 debian kernel: [49542.112211] [] ? lookup_fast+0x2bd/0x2e0
Oct 25 12:55:17 debian kernel: [49542.112212] [] ? walk_component+0x44/0x320
Oct 25 12:55:17 debian kernel: [49542.112213] [] ? path_lookupat+0x67/0x120
Oct 25 12:55:17 debian kernel: [49542.112214] [] ? filename_lookup+0xb1/0x180
Oct 25 12:55:17 debian kernel: [49542.112215] [] ? inet_recvmsg+0x7d/0xb0
Oct 25 12:55:17 debian kernel: [49542.112216] [] ? __check_object_size+0xfa/0x1d8
Oct 25 12:55:17 debian kernel: [49542.112218] [] ? strncpy_from_user+0x48/0x160
Oct 25 12:55:17 debian kernel: [49542.112219] [] ? vfs_fstatat+0x59/0xb0
Oct 25 12:55:17 debian kernel: [49542.112220] [] ? sys32_stat64+0x25/0x60
Oct 25 12:55:17 debian kernel: [49542.112221] [] ? do_gettimeofday+0x25/0x90
Oct 25 12:55:17 debian kernel: [49542.112223] [] ? compat_SyS_gettimeofday+0x39/0x90
Oct 25 12:55:17 debian kernel: [49542.112224] [] ? do_fast_syscall_32+0x8d/0x170
Oct 25 12:55:17 debian kernel: [49542.112225] [] ? entry_SYSENTER_compat+0x4c/0x5b

というわけで、apacheがいかんのかと思っていたら、cifsじゃね?ということで。

いや、最近よく鯖が固まるんです。
認証かけているところだけだったのでssl絡みかapache周りだとずっと思っていたのですが・・・
鯖はHyper-V上で動いていて、バックアップを取るために一日一回サスペンドに入るのですが、そこから復帰したときにcifsが固まるせいでそこへアクセスしようとするapacheが固まる、という事だった様子。

ということでgoogle先生に聞いたらやっぱり同じ症状の人がいました。
SMB/CIFS mount hang and kernel hung task
Bug#861104: linux-image-4.9.0-2-amd64: Kernel deadlock with CIFS mounts
が、どうしたらよいという解決策は微妙で、1つ目のリンクのようにアクセスし続ける、というのも手なのかも。

ひとまず、autofsで
/mnt/samba /etc/auto.master.d/windows.cnf -t=0 -g
としているのを-t=600に変えて都度マウントするようにしてみましょう。

→なんとなく治った気がします。
-t=0の実装が良くないのか、windows側の問題かはわかりませんが、正常にレジュームできないんでしょうね。

2017/10/22

なんか更新された

Windows 10のメジャーアップデート「Fall Creators Update」で何が変わったのか?

というわけで、いつも通り(3D オブジェクトが増えましたが)
Windows Registry Editor Version 5.00

;OneDrive
[-HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}]

[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{088e3905-0323-4b02-9826-5d99428e115f}]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{24ad3ad4-a569-4530-98e1-ab02f9417aa8}]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{3dfdf296-dbec-4fb4-81d1-6a3438bcf4de}]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{d3162b92-9365-467a-956b-92703aca08af}]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{f86fa3ab-70d2-4fc7-9c99-fcbf05467f3a}]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}]

[-HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{088e3905-0323-4b02-9826-5d99428e115f}]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{24ad3ad4-a569-4530-98e1-ab02f9417aa8}]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{3dfdf296-dbec-4fb4-81d1-6a3438bcf4de}]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{d3162b92-9365-467a-956b-92703aca08af}]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{f86fa3ab-70d2-4fc7-9c99-fcbf05467f3a}]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}]

[-HKEY_CLASSES_ROOT\Folder\shellex\ContextMenuHandlers\PintoStartScreen]
[-HKEY_CLASSES_ROOT\Folder\shellex\ContextMenuHandlers\{a2a9545d-a0c2-42b4-9708-a0b2badd77c8}]
[-HKEY_CLASSES_ROOT\Folder\shell\pintohome]
[-HKEY_CLASSES_ROOT\Folder\shell\pintohome\command]

僕に関係しそうな機能としてはタスクマネージャでGPUの負荷率が見えるようになりました、というぐらいですかね。

2017/10/15

NASでVM

最近のNASはPC用のCPUを積んでいることもあり、中で仮想マシンが動きます。
QNAPも同様で、VMwareで動いてたvmxをインポートしたらあっさり動きました。

どうせコンソールしか使わないので性能は特に問題ないのですが、鯖を動かしているとアクセスがあるためHDDがスタンバイに入ってくれないことに気が付きました。
・・・まぁ、そうだよね・・・

そういえばNASdではなく、2008R2のHyper-V上で動いているdebianさんが良く文句を言います。
曰く、
hv_utils: Integration service 'Backup (volume snapshot)' not supported on this host version.
hv_vmbus: probe failed for device ... (-19)
とか
INFO: task apache2:14028 blocked for more than 120 seconds.
debian kernel: [86275.040066] Not tainted 4.9.0-4-amd64 #1 Debian 4.9.51-1
とか。

ふむ・・・

あと、システム起動時にntpが9時間ずれている、という文句を言っているようです。
いろいろ調べた結果、windowsがlocaltimeをHWCLOCKとして渡す「仕様」なのに対し、linux側がUTCを受け取っていると思い込んでいるのがいかんのではないかという結論に。
hwclock.shには
# Use the UTC/LOCAL setting in /etc/adjtime rather than the UTC setting in /etc/default/rcS.
と書いてあったので、/etc/adjtimeのUTCをLOCALに変更してみたところ、hwclock --showの結果が正しくなりました。

もしスナップショットを取るときにいったんスタンバイに入り、その後hwclockを使って誤って9時間進んだ時間で復帰した結果おかしくなっているのだとすると、時間を正しく取得できるだけで治るはず。
・・・まぁ、 not supported on this host versionとか言ってるからスナップショットを取るのをやめればよいのかもしれませんが・・・

→変わりませんでしたorz。
どうもおかしくなるタイミング的にはホスト(2008R2)側がバックアップを作成するタイミングのようなのでhyperv_daemonとか入れてみたのですが、もともと入ってるのと何が変わるのやら、という結論に達してひとまずremove。

/server-statusをしばらく眺めていたら、なんとなく終了しないスレッドが多数あるような気がしてきました。
MPM:workerで動いていて、
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxRequestWorkers 150
MaxConnectionsPerChild 0
(というかデフォルトのはず)
なのですが、何がいかんのか・・・
おかしくなっているときにはスレッドがMaxSpareThreads近くに達していて終わっていないのがたくさんあるという・・・
apacheをrestartさせていくつかアクセスをしてみたものの、スレッドが終了せずにMinSpareThreads以上になる現象には出会えず。

チューニングとかいろいろあるんでしょうが、別にMPM変えてもよかったので、2.4ではデフォルトになっているというeventに変えてみました。

これでまた様子を見てみましょう・・・。

参考:
Apache HTTP Server: MPMパラメータ チートシート
Hyper-V 仮想マシンのバックアップは VSS 非対応でも止まらないんだ

→変わりませんでした
続きは後日

2017/10/07

ca更新

自鯖で使っている証明書の期限が切れたので再更新

めも

というかCA.plってテストされてないようで、僕でもわかるバグが・・・

・なぜかopensslのコンフィグを読み込んでくれない
→環境変数が「OPENSSL_CONF」になってた。
CA.plで読んでるのは「OPENSSL_CONFIG」
どうしてこんな簡単なところが通ってないのか・・・
いや、そもそもwindows上でopensslを使うような人がレアなのか・・・

・.cnfにCATOPが定義されていない、というかplで読み込むようになっていない?($REQが入っていないように見える)
・ってかコンフィグを見込むのに必要な-configが付いてない・・・
→($OPENSSL_CONFIG) and $OPENSSL_CONFIG='-config '.$OPENSSL_CONFIG;
を追加

・sansが指定されていない、という文句をchromeが言うので、ネットの言うとおりにsansを設定しようとしてもうまくいかない
→default_caから折ってくと、x509_extensionsはusr_certセクションを参照していて、reqセクションじゃない
からusr_certに追加すればよい
subjectAltName = @alt_names

[alt_names]
DNS.1 = www.example.com
DNS.2 = hogehoge.example.net
DNS.3 = humuhumu.example.jp

等いろいろありましたが、とりあえず更新。
どうせだから*.domainで証明書作っとけばよかったかも。


オレオレCAを更新したのでサブドメインの証明書も更新したのですが、その際にssllabsというところでhttpsのチェックをしてくれているとの情報を得たので試してみました。

当然、オレオレ証明書なのでtrustedにはなりませんが、それがなければAとの評価。
最初はA-だったのですが、設定に
SSLHonorCipherOrder on
を追加したらAに。
Header add Strict-Transport-Security "max-age=157680000;includeSubDomains;"
も追加しようとしたらmodsがないと言われたので、apacheにmod_headersを読み込ませてから追加したのですが、A+にはならず。
まぁ、そんなもんでしょう。

で、最近はドメイン証明書を無料で出してくれるところがあるらしい。
Let's Encryptとか。
仕組みがdnsのレコードを利用しているみたいで、面白い発行方法ですね。

ただし、僕の今の使い方はユーザー認証を必須としているため、ドメイン証明書をもらっても仕方がありません。
・・・apacheとかはサーバの証明書とユーザー認証のCA(SSLCACertificate)が違っても大丈夫なのかな?
違ってもいいならドメイン証明書をもらってもよいかな、と思いますが。

2017/10/01

17Q3も

ももう終わりですね。

今期はゲーマーズが好きでした。
こういったノリが好きです。
後は無難にNEW GAMEとか、グルグルとか、

そういえばUQ HOLDERってネギま2だったんですね、まったく知りませんでした・・・