Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

NSInternalInconsistencyException When Using mjpython With composer.Environment on M1 Macbook

オープン
#493 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
35/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
macos, python

調査の方向性

まず、issue に示されているとおり、mjpython、composer.Environment、viewer.launch_passive を使って M1 Mac 上でクラッシュを再現します。パッシブ viewer と GLFW ウィンドウの作成経路を追跡し、その後、環境と viewer が NSInternalInconsistencyException なしで実行されることを確認します。

索引モデルが issue の本文から書いたものです。

説明

Hello,

In order to use mujoco.passive_viewer on my m1 macbook I have to use mjpython command to launch it.

But when I try to create an environment as follows

    env = composer.Environment(task=task, time_limit=time_limit, **env_kwargs)

Launching this with mjpython results in the following error

2024-09-14 14:15:19.365 mjpython[93348:387515] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'NSWindow drag regions should only be invalidated on the Main Thread!'
*** First throw call stack:
(
	0   CoreFoundation                      0x00000001bfead198 __exceptionPreprocess + 240
	1   libobjc.A.dylib                     0x00000001bfbf7e04 objc_exception_throw + 60
	2   CoreFoundation                      0x00000001bfed8118 _CFBundleGetValueForInfoKey + 0
	3   AppKit                              0x00000001c29baba0 -[NSWindow(NSWindow_Theme) _postWindowNeedsToResetDragMarginsUnlessPostingDisabled] + 372
	4   AppKit                              0x00000001c29a5b9c -[NSWindow _initContent:styleMask:backing:defer:contentView:] + 948
	5   AppKit                              0x00000001c29a57dc -[NSWindow initWithContentRect:styleMask:backing:defer:] + 56
	6   libglfw.3.dylib                     0x00000001052ad710 _glfwPlatformCreateWindow + 336
	7   libglfw.3.dylib                     0x00000001052a7bc8 glfwCreateWindow + 332
	8   libffi.8.dylib                      0x000000010499004c ffi_call_SYSV + 76
	9   libffi.8.dylib                      0x000000010498d74c ffi_call_int + 1208
	10  _ctypes.cpython-310-darwin.so       0x0000000104970a1c _ctypes_callproc + 1260
	11  _ctypes.cpython-310-darwin.so       0x000000010496acfc PyCFuncPtr_call + 1132
	12  python3.10                          0x0000000104e4b59c _PyObject_MakeTpCall + 612
	13  python3.10                          0x0000000104f3d5d8 call_function + 676
	14  python3.10                          0x0000000104f38e60 _PyEval_EvalFrameDefault + 24940
	15  python3.10                          0x0000000104f32364 _PyEval_Vector + 2036
	16  python3.10                          0x0000000104f3d540 call_function + 524
	17  python3.10                          0x0000000104f39430 _PyEval_EvalFrameDefault + 26428
	18  python3.10                          0x0000000104f32364 _PyEval_Vector + 2036
	19  python3.10                          0x0000000104e4edc0 method_vectorcall + 520
	20  python3.10                          0x0000000104f39658 _PyEval_EvalFrameDefault + 26980
	21  python3.10                          0x0000000104f32364 _PyEval_Vector + 2036
	22  python3.10                          0x0000000104f3d540 call_function + 524
	23  python3.10                          0x0000000104f38e38 _PyEval_EvalFrameDefault + 24900
	24  python3.10                          0x0000000104f32364 _PyEval_Vector + 2036
	25  python3.10                          0x0000000104e4ec64 method_vectorcall + 172
	26  python3.10                          0x0000000104f3d540 call_function + 524
	27  python3.10                          0x0000000104f38e60 _PyEval_EvalFrameDefault + 24940
	28  python3.10                          0x0000000104f32364 _PyEval_Vector + 2036
	29  python3.10                          0x0000000104e4b7ac _PyObject_FastCallDictTstate + 156
	30  python3.10                          0x0000000104e4c454 _PyObject_Call_Prepend + 176
	31  python3.10                          0x0000000104ec3394 slot_tp_init + 116
	32  python3.10                          0x0000000104ebbd64 type_call + 456
	33  python3.10                          0x0000000104e4b59c _PyObject_MakeTpCall + 612
	34  python3.10                          0x0000000104f3d5d8 call_function + 676
	35  python3.10                          0x0000000104f39430 _PyEval_EvalFrameDefault + 26428
	36  python3.10                          0x0000000104f32364 _PyEval_Vector + 2036
	37  python3.10                          0x0000000104f3d540 call_function + 524
	38  python3.10                          0x0000000104f38e38 _PyEval_EvalFrameDefault + 24900
	39  python3.10                          0x0000000104f32364 _PyEval_Vector + 2036
	40  python3.10                          0x0000000104e57f80 property_descr_get + 128
	41  python3.10                          0x0000000104ea4a74 _PyObject_GenericGetAttrWithDict + 208
	42  python3.10                          0x0000000104ea548c PyObject_GetAttr + 96
	43  python3.10                          0x0000000104f3754c _PyEval_EvalFrameDefault + 18520
	44  python3.10                          0x0000000104f32364 _PyEval_Vector + 2036
	45  python3.10                          0x0000000104e4b7ac _PyObject_FastCallDictTstate + 156
	46  python3.10                          0x0000000104e4c454 _PyObject_Call_Prepend + 176
	47  python3.10                          0x0000000104ec3394 slot_tp_init + 116
	48  python3.10                          0x0000000104ebbd64 type_call + 456
	49  python3.10                          0x0000000104e4b59c _PyObject_MakeTpCall + 612
	50  python3.10                          0x0000000104f3d5d8 call_function + 676
	51  python3.10                          0x0000000104f39430 _PyEval_EvalFrameDefault + 26428
	52  python3.10                          0x0000000104f32364 _PyEval_Vector + 2036
	53  python3.10                          0x0000000104e4ec64 method_vectorcall + 172
	54  python3.10                          0x0000000104f3d540 call_function + 524
	55  python3.10                          0x0000000104f39430 _PyEval_EvalFrameDefault + 26428
	56  python3.10                          0x0000000104f32364 _PyEval_Vector + 2036
	57  python3.10                          0x0000000104f3d540 call_function + 524
	58  python3.10                          0x0000000104f38e60 _PyEval_EvalFrameDefault + 24940
	59  python3.10                          0x0000000104f32364 _PyEval_Vector + 2036
	60  python3.10                          0x0000000104f3d540 call_function + 524
	61  python3.10                          0x0000000104f38e38 _PyEval_EvalFrameDefault + 24900
	62  python3.10                          0x0000000104f32364 _PyEval_Vector + 2036
	63  python3.10                          0x0000000104f3d540 call_function + 524
	64  python3.10                          0x0000000104f38e38 _PyEval_EvalFrameDefault + 24900
	65  python3.10                          0x0000000104f32364 _PyEval_Vector + 2036
	66  python3.10                          0x0000000104e4ec64 method_vectorcall + 172
	67  python3.10                          0x0000000104f3d540 call_function + 524
	68  python3.10                          0x0000000104f39430 _PyEval_EvalFrameDefault + 26428
	69  python3.10                          0x0000000104f32364 _PyEval_Vector + 2036
	70  python3.10                          0x0000000104e4b7ac _PyObject_FastCallDictTstate + 156
	71  python3.10                          0x0000000104e4c454 _PyObject_Call_Prepend + 176
	72  python3.10                          0x0000000104ec3394 slot_tp_init + 116
	73  python3.10                          0x0000000104ebbd64 type_call + 456
	74  python3.10                          0x0000000104e4bfb0 _PyObject_Call + 148
	75  python3.10                          0x0000000104f39658 _PyEval_EvalFrameDefault + 26980
	76  python3.10                          0x0000000104f32364 _PyEval_Vector + 2036
	77  python3.10                          0x0000000104f3d540 call_function + 524
	78  python3.10                          0x0000000104f39430 _PyEval_EvalFrameDefault + 26428
	79  python3.10                          0x0000000104f32364 _PyEval_Vector + 2036
	80  python3.10                          0x0000000104f8d398 run_mod + 216
	81  python3.10                          0x0000000104f8ce38 _PyRun_SimpleFileObject + 1260
	82  python3.10                          0x0000000104f8be1c _PyRun_AnyFileObject + 240
	83  python3.10                          0x0000000104fb08f8 Py_RunMain + 2340
	84  mjpython                            0x000000010479e940 _ZN12_GLOBAL__N_115mjpython_pymainEPv + 160
	85  libsystem_pthread.dylib             0x00000001bfd6026c _pthread_start + 148
	86  libsystem_pthread.dylib             0x00000001bfd5b08c thread_start + 8
)
libc++abi: terminating with uncaught exception of type NSException
[1]    93348 abort      mjpython 

This only occurs when using mjpython, a requirement for my script, where I use the passive viewer to view and interact with the environment.

with mujoco.viewer.launch_passive(
            self._env.physics.model.ptr, self._env.physics.data.ptr, show_right_ui=False
        ) as viewer:
            while viewer.is_running():
                if self._reset_step:
                    ts = self._env.reset()
                    self._reset_step = False

                step_start = time.time()

                ts = self._env.step(self._joint_cmd)
                self._joint_state = ts.observation["joint_positions"]
                ... 
            
Would appreciate any workarounds or advice! 
主要言語
Python
スター
4.7k
フォーク
765
PR マージ指標
30日以内にマージされた PR はありません

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

google-deepmind/dm_control のほかの issue

google-deepmind/dm_control の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。