<feed xmlns="http://www.w3.org/2005/Atom"><title>むにゃむにゃ...</title><link href="https://ikiuo.theblog.me"></link><subtitle>ＺZｚz...</subtitle><id>https://ikiuo.theblog.me</id><author><name>ikiuo</name></author><updated>2024-08-28T14:44:05+00:00</updated><entry><title><![CDATA[Apple タイムサーバー(time.apple.com)障害]]></title><link rel="alternate" href="https://ikiuo.theblog.me/posts/55114653/"></link><link rel="enclosure" type="image/png" href="https://cdn.amebaowndme.com/madrid-prd/madrid-web/images/sites/224683/5657ff72394161fee7e2879f3e3ffa49_52fa95954612453e5c49a4bb27178a7f.png"></link><id>https://ikiuo.theblog.me/posts/55114653</id><summary><![CDATA[タイムサーバーの時刻がおかしい？システム設定 > 一般 > 日付と時刻]]></summary><author><name>ikiuo</name></author><published>2024-08-28T14:44:05+00:00</published><updated>2024-08-30T05:52:27+00:00</updated><content type="html"><![CDATA[
		<div>
			<h2>タイムサーバーの時刻がおかしい？</h2><p>システム設定 &gt; 一般 &gt; 日付と時刻</p>
		</div>
	
		<div>
			<img src="https://cdn.amebaowndme.com/madrid-prd/madrid-web/images/sites/224683/5657ff72394161fee7e2879f3e3ffa49_52fa95954612453e5c49a4bb27178a7f.png?width=960" width="100%">
		</div>
		

		<div>
			<p>「自動的に設定」は有効、「タイムサーバー」は Apple (time.apple.com.) だけど、「時刻がずれる」症状に遭遇した方が少なくないようです。ネットワーク通信に問題ないならば「タイムサーバーの時刻が狂ってる」と判断するのは仕方ないでしょう。</p><p>しかし、タイムサーバーから時刻が取れない状況が続くと、Macの内蔵時計のままになっています。設定上はタイムサーバーの時刻ですが、実態はMacの内蔵時計かもしれないのです。内蔵時計も実用的な精度で時間が進むので、気付くまでに日数を要するでしょう。</p><p>このとき、「内蔵時計の時刻」を「タイムサーバーの時刻」と誤認して「タイムサーバーの時刻が狂ってる」と判断しても、他所と状況が違うので混乱することになります。</p><h2>時刻が取れない状況が続く？</h2><p class="">time.apple.com は IP アドレスに変換すると下の表になります。IP アドレスに対する色分けが取得の可否です。</p>
		</div>
	<center>
  <div>time.apple.com に出現するアドレスと逆引きしたホスト名</div>
  <table border="1" style="border-collaspe: collaspe; border-spacing: 0;">
    <tr><th>IPv4アドレス</th><th>IPv6アドレス</th><th>逆引きしたホスト名</th></tr>
    <tr><td style="color: blue;">17.253.68.123</td><td style="color: red;">2403:300:a0c:3000::1e2</td><td>jptyo5-ntp-003.aaplimg.com</td></tr>
    <tr><td style="color: blue;">17.253.68.251</td><td style="color: red;">2403:300:a0c:4000::1e2</td><td>jptyo5-ntp-004.aaplimg.com</td></tr>
    <tr><td style="color: blue;">17.253.68.253</td><td style="color: red;">2403:300:a0c:4000::1f2</td><td>jptyo5-ntp-002.aaplimg.com</td></tr>
    <tr><td style="color: lightgray;">17.253.114.125</td><td style="color: darkgoldenrod;">2403:300:a16:3000::1f2</td><td>krsel6-ntp-001.aaplimg.com</td></tr>
  </table>
  <div style="font-size: small;">krsel6-ntp-001.aaplimg.com (17.253.114.125) は出現しません。</div>
  <div style="font-size: small;">2024/08/28時点での情報です。</div>
</center>

		<div>
			<p>IPv6 通信ができない環境では、タイムサーバーへの接続が IPv4 で時刻が取れます。使われる IP アドレスは青色です。</p><p class="">IPv6 通信ができる環境では、使われる IP アドレスは赤か黄(暗)です。青(IPv4)は使用されません。ホスト名 jptyo5-ntp-* (赤)はすべて応答がありません。唯一、応答があるのはホスト名 krsel6-ntp-* ですが</p><p>　　Mac → [中継] →&nbsp;krsel6-ntp-*</p><p>　　Mac ← [中継] ← krsel6-ntp-*</p><p class="">の通信が約1秒で終わらないとタイムアウト(エラー)になります。タイムアウトになるかならないかは [中継] 次第です。ホスト名から jptyo5-* は日本･東京で、krsel6-* は韓国ソウルでしょう。krsel6-* は jptyo5-* よりネットワーク的に条件が厳しくなります。(特に最初の通信)</p><p class="">krsel6-* から時刻を取れるかどうかは運次第となって</p>
		</div>
	<div>
<ul>
  <li>
    <dl>時刻が取れない状況が続く
      <dd>時刻は内蔵時計だけなので、ずれ続ける</dd>
    </dl>
  </li>
  <li>
    <dl>時刻が時々取れる(その1)
      <dd>ずれたり直ったりする</dd>
    </dl>
  </li>
  <li>
    <dl>時刻が時々取れる(その2)
      <dd>ずれに気付かない(見た目は正常動作)</dd>
    </dl>
  </li>
  <li>
    <dl>時刻が取れる
      <dd>正常動作</dd>
    </dl>
  </li>
</ul>
</div>
		<div>
			<p>の何れかの状況になりますが、どの状況になるのか確定しないので、とても厄介です。</p><h2>通信が IPv4 なのか IPv6 なのか？</h2><p>Google の IPv6 通信テストがあるので、チェックしてみてください。</p>
		</div>
	
	<div>
		<figure>
			
		<a href="https://ipv6test.google.com/intl/ja/">
			<img src="https://ipv6test.google.com/intl/ja/images/branding/googlelogo/1x/googlelogo_color_116x41dp.png" width="100%">
			<small><b>インターネットの未来に向かう準備はできていますか？</b></small>
			<br>
			<small>お使いの接続方法をテストできませんでした。もう一度試すか。
      
        しばらくお待ちください。IPv6 への対応状況を確認しています...
      
        既に IPv6 を使用しているようです。
      
        インターネットの未来へようこそ！
      
        問題は検出されませんでした。
      
        お使いの接続方法は IPv6 への対応が完了していませんが、IPv6 をサポートしているウェブサイトは問題なく閲覧できるはずです。
      
        お使いの接続方法は IPv6 への対応が完了していないようです。
      
        原因としては、お使いのホーム ルーター、オペレーティング システム、または ISP の問題が考えられます。
      
      IPv6 について詳しくはこちら、World IPv6 Launch について詳しくはこちらをご覧ください。</small>
		</a>
		</figure>
	</div>]]></content></entry><entry><title><![CDATA[ESET Cyber Security の不具合(V6.3まで)]]></title><link rel="alternate" href="https://ikiuo.theblog.me/posts/1611271/"></link><link rel="enclosure" type="image/jpeg" href="https://cdn.amebaowndme.com/madrid-prd/madrid-web/images/sites/224683/14c36d507a384381364b095f84f81fcc_6830db5718d6fb2a4b44f2c202b49e24.jpg"></link><id>https://ikiuo.theblog.me/posts/1611271</id><summary><![CDATA[以前 Mac OS X が不安定だと思っていたが、その原因は ESET Cyber Security Pro だった。コンソール アプリケーションで .crash ファイルを確認すると、]]></summary><author><name>ikiuo</name></author><published>2018-02-28T01:05:23+00:00</published><updated>2018-02-28T01:10:05+00:00</updated><content type="html"><![CDATA[
		<div>
			<p>以前 Mac OS X が不安定だと思っていたが、その原因は ESET Cyber Security Pro だった。</p><p><br></p><p>コンソール アプリケーションで .crash ファイルを確認すると、<br></p>
		</div>
	
		<div>
			<img src="https://cdn.amebaowndme.com/madrid-prd/madrid-web/images/sites/224683/14c36d507a384381364b095f84f81fcc_6830db5718d6fb2a4b44f2c202b49e24.jpg?width=960" width="100%">
		</div>
		

		<div>
			<p class="">と、こんな感じでクラッシュが多発していた。</p><p class=""><br></p><p class="">ESET プロセスのクラッシュ直後に<br></p>
		</div>
	<ul>
  <li>Safari や Chrome などのブラウザで接続エラーになる<br>特定サイトのみエラーになる症状にも遭遇</li>
  <li>メールでアカウントエラーになる<br>
    後に「修復されたメッセージ」フォルダが作られていた
  </li>
  <li>同期を行っているサービスがエラーになる</li>
  <li>実行プログラムのライブラリ ファイルの読み込みエラー</li>
  <li>OS X の異常終了(カーネル パニック)が起きた</li>
  <li>接続していた iPhone 6s のホームボタンが熱くなった</li>
</ul>

		<div>
			<p class="">などの症状に遭遇している。まるで Mac OS X が不安定な感じだが、ECSP がカーネルに悪影響を及ぼす（カーネル拡張処理中に異常終了する）ので様々な症状が出ていたようだ。</p><p class=""><br></p><p class="">クラッシュ時の診断ファイルを見つつ分析して、動作が不安定となるバグを特定した。このバグは初期バージョンから V6.3 まで含まれていて V6.4 で修正された。数日に一回発生していた ESET プロセスのクラッシュは、半年で数回に激減した。V6.5 になってから一度も遭遇していない。</p>
		</div>
	<hr>
		<div>
			<h4>■多発するクラッシュの技術的な詳細</h4><p class="">沢山ある .crash ファイルを眺めていると、バックトレース中の RefObje::Unref() が目に付いた。その先には参照が終わったであろうオブジェクトのデストラクタ[Object::~Object()形式の関数]がある。そこからメモリ解放に失敗するなど、メモリ内容の破壊が原因となっているようだった。<br></p><p class=""><br></p><p class="">デストラクタの処理中なので、同じオブジェクトが別のスレッドで既に破棄されていた場合が考えられる。これを仮定してバックトレースを見ると、呼び出し元である RefObj::Unref() がスレッド セーフではない可能性に気付いた。</p><p class=""><br></p><p class="">RefObj::Unref() はオブジェクトの参照カウントをデクリメントして０ならデストラクタを呼び出す、短くて簡単なプログラムだと名前から推定できる。ライセンス違反（その旨はサポートにも話をしてある）だが逆アセンブルして調査する事にした。プログラムを見ていくと、やっぱりスレッドセーフになっていなかった。</p><p><br></p><p>RefObj::Unref() での参照カウントのデクリメントと結果判定は</p>
		</div>
	<blockquote>
<table>
  <tr>
    <td>move</td><td>$-1, regA</td>
    <td>;# regA = -1</td>
  </tr>
  <tr>
    <td>lock</td><td>&nbsp;</td>
    <td>;# // 直後の命令はアトミック操作</td>
  </tr>
  <tr>
    <td>xaddl</td><td>regA, (参照カウント)</td>
    <td>;# regA = 参照カウント --</td>
  </tr>
  <tr>
    <td>move</td><td>(参照カウント), regA</td>
    <td>;# regA = 参照カウント</td>
  </tr>
  <tr>
    <td>test</td><td>regA, regA</td>
    <td>;# (0 == regA) ? ...</td>
  </tr>
</table>
</blockquote>
		<div>
			<p class="">こんな風になっていてマルチスレッド プログラミングにおけるバグの典型</p>
		</div>
	<blockquote>
<table>
  <tr>
    <td colspan="3">
      <small> ;# 参照カウントは 2 とする</small>
    </td>
  </tr>
  <tr>
    <td>move</td><td>$-1, regA</td>
    <td>;# regA = -1</td>
  </tr>
  <tr>
    <td>lock</td><td>&nbsp;</td>
    <td>;# // 直後の命令はアトミック操作</td>
  </tr>
  <tr>
    <td>xaddl</td><td>regA, (参照カウント)</td>
    <td>;# regA = 参照カウント --</td>
  </tr>
  <tr>
    <td colspan="3">
      <small>
      ;# 参照カウントは 1 に更新された<br>
      ;#** ここでスレッド切替の割り込みが発生する<br>
      ;# 切り替わったスレッドが同じオブジェクトの RefObj::Unref() を呼び出す<br>
      ;# さらに参照カウントが更新されて 0 になる<br>
      ;# 参照カウントが 0 なのでデストラクタを呼び出す<br>
      ;#** スレッドの処理が戻される
      </small>
    </td>
  </tr>
  <tr>
    <td>move</td><td>(参照カウント), regA</td>
    <td>;# regA = 参照カウント</td>
  </tr>
    <td colspan="3">
       <small> ;# 参照カウントは 1 の予定だが 0 になっている</small>
    </td>
 <tr>
    <td>test</td><td>regA, regA</td>
    <td>;# (0 == regA) ? ...</td>
  </tr>
     <td colspan="3">
     <small> ;# 参照カウントが 0 なので再度デストラクタを呼び出す<br>
       ;# メモリ内容を破壊してクラッシュに至る
       </small>
    </td>
</table>
</blockquote>
		<div>
			<p class="">になっている。 C++ による記述だろうから、アトミック操作と判定処理で別々のメモリアクセスになっているのだろう。アトミック操作により参照カウントは RefObj::Unref() を呼び出した回数に応じた値で更新されるが、判定時に他のスレッドを同じ値と判断する可能性がある。運が悪いと、二つのスレッドから同じオブジェクトのデストラクタが各々呼び出されてしまう。クラッシュする場合はプログラムが異常終了するが、クラッシュしない場合は、メモリ内容を破壊したまま動作するので何が起きるか分からない。</p><p class=""><br></p><p class="">V6.1 はコンパイル時の最適化オプションが入っておらずシンボルも残っていた。どうやらデバッグ版でビルドしたバイナリをリリースしていたようだ。お陰で RefObj::Unref() という名前の関数にあるバグを特定できた。</p>
		</div>
	<hr>
		<div>
			<h4>■クラッシュログ</h4><p>サポートからの最初の回答は「正常に動作しています」だった。問い合わせ内容にクラッシュログを引用し、customer_info ログにクラッシュ ログが含まれていたのに「正常動作」と判断している。クラッシュログを見ていないことが分かった。サポートの技術担当の知識不足もあるだろうけど、クラッシュログ確認を指示されていないことも分かる。本来は ESET社からクラッシュログの収集指示が出ていないといけないが、不具合調査におけるクラッシュログの重要性を知らない技術担当でいいのか？と、基本的なことから問い合わせしないといけなかった。</p><p data-placeholder=""><br></p><p data-placeholder="">不具合の状況について提出した資料では、動作と症状の詳細解説と修正方法を示しておいた。サポートの技術担当は理解したという返事が早々にあったが、そこからESET社が「内容が正しいようだ」と回答されるまで約三ヶ月かかっている。動作を理解できたのか非常に怪しいが修正された。経緯から&nbsp;ESET Cyber Security のプログラム担当はスキル不足と判断するしかないので、スキルアップをお願いしておいた。</p><p data-placeholder=""><br></p><p>原因調査ではクラッシュログは重要な情報だから、OSでは「○○が予期しない理由で終了しました」でレポートするときの送信内容になっている。</p>
		</div>
	]]></content></entry><entry><title><![CDATA[macOS Sierra - Mission Control の問題]]></title><link rel="alternate" href="https://ikiuo.theblog.me/posts/1595339/"></link><link rel="enclosure" type="image/png" href="https://cdn.amebaowndme.com/madrid-prd/madrid-web/images/sites/224683/7b8052b40879965ddbc22a6c74b09d53_61f2ae89e343117b1162e201e328ab24.png"></link><id>https://ikiuo.theblog.me/posts/1595339</id><summary><![CDATA[■ Mission Control の挙動選択するウインドウの位置は(1) Mission Control を起動した状態]]></summary><author><name>ikiuo</name></author><published>2016-11-10T02:51:52+00:00</published><updated>2024-08-28T13:09:01+00:00</updated><content type="html"><![CDATA[
		<div>
			<h4>■ Mission Control の挙動</h4><p class="">選択するウインドウの位置は<br></p><p class="">(1) Mission Control を起動した状態<br></p>
		</div>
	
		<div>
			<img src="https://cdn.amebaowndme.com/madrid-prd/madrid-web/images/sites/224683/7b8052b40879965ddbc22a6c74b09d53_61f2ae89e343117b1162e201e328ab24.png?width=960" width="100%">
		</div>
		

		<div>
			<p class="" style="text-align: left;">(2) デスクトップを選択可能にした状態<br></p>
		</div>
	
		<div>
			<img src="https://cdn.amebaowndme.com/madrid-prd/madrid-web/images/sites/224683/e34e8670e32a024669b87782a65a0d57_72dc667c79105273686b9f49211246c8.png?width=960" width="100%">
		</div>
		

		<div>
			<p class="" style="text-align: left;">の二段階で移動します。<br></p>
		</div>
	<hr>
		<div>
			<h4 class="">■ 問題１：ウインドウ選択の枠がズレた場所に出る</h4><p class="">二段階で移動した後、選択の枠が一段階目の位置に出ることがあります。</p>
		</div>
	
		<div>
			<img src="https://cdn.amebaowndme.com/madrid-prd/madrid-web/images/sites/224683/349eaa92ad75a31579c59cc26068785d_1d59549a9d462d42f05de0ef8efa14f9.png?width=960" width="100%">
		</div>
		

		<div>
			<p class="">再現手順は<br></p><p>　　1. Magic Trackpad を使う</p><p class="">　　2. マウス カーソルを画面上端の中央付近へ<br></p><p>　　3. Mission Control をジェスチャー (３本指で上) で起動する</p><p>　　　※スッっと一瞬だけ触れて起動します</p><p>　　4. Mission Control 開始から約 0.5 秒以内にマウス カーソルを移動する</p><p>　　　※デスクトップを選択可能な状態にします</p><p>　　5. ウインドウを選択する</p><p>とします。</p>
		</div>
	<hr>
		<div>
			<h4 class="">■ 問題２：選択したウインドウが固定される</h4><p class="">選択の枠がズレた状態でウインドウを選択すると、そのウインドウが画面上に固定され移動もサイズ変更も出来なくなることがあります。</p><p class=""><br></p><p class="">再現させるには選択の枠がズレた状態を作りますが、最初の配置も重要です。ここでは&nbsp;Mission Control を開始する前の配置は[デスクトップ1]のような位置・サイズで開始しました。<br></p>
		</div>
	
		<div>
			<img src="https://cdn.amebaowndme.com/madrid-prd/madrid-web/images/sites/224683/abff1d8feac911fbc86b6de339835f59_7f2ea5d2a334417b338c38c805925671.png?width=960" width="100%">
		</div>
		

		<div>
			<p class=""><br></p><p class="">左のターミナルをクリックして選択したら、元の位置に戻らずウインドウが固定されました。こうなると、ウインドウを移動しようと操作しても移動しません。サイズを変更しようとすると、</p>
		</div>
	
		<div>
			<img src="https://cdn.amebaowndme.com/madrid-prd/madrid-web/images/sites/224683/d83514da01f988806525f4911def1c30_2755bbc2d0e990d577d1e719b7082df2.png?width=960" width="100%">
		</div>
		

		<div>
			<p class="">となって、変更できません。代わりに中の表示が拡大されています。サイズ変更操作を続けて、もう一度 Mission Control を実行してみると、</p>
		</div>
	
		<div>
			<img src="https://cdn.amebaowndme.com/madrid-prd/madrid-web/images/sites/224683/149953872bb4056df4722ef51461b62e_8ced10b4ce3adb0d8bd3879aa7cf483c.png?width=960" width="100%">
		</div>
		

		<div>
			<p class="">となっていて、[デスクトップ1] では左側のターミナルが小さくなっています。これが本来の位置とサイズのようです。さらに、この&nbsp;Mission Control 中に左側のターミナルをドラッグして少し移動すると、正常な位置・サイズに戻ってウインドウの固定は終了しました。</p>
		</div>
	<hr>
		<div>
			<h4 class="">■ アップデート待ち</h4><p>Apple サポートの窓口の方が再現確認しています。誰でも再現可能なので修正されるのは時間の問題でしょう。あとはアップデートを待つだけです。</p>
		</div>
	]]></content></entry></feed>