benkuper / Chataigne

Artist-friendly Modular Machine for Art and Technology
https://benjamin.kuperberg.fr/chataigne
GNU General Public License v3.0
1.22k stars 58 forks source link

util.getObjectProperties still lists containers that were removed #234

Closed DonGuig closed 5 months ago

DonGuig commented 6 months ago

Environment

Describe the bug I'm developing a custom module. I create containers insides the parameter section. If I remove a container with removeContainer, and then use util.getObjectProperties on the parent container, the container that was removed is still listed.

To Reproduce Steps to reproduce the behavior:

  1. create a container with addContainer
  2. remove the container with removeContainer
  3. use util.getObjectProperties and see that the removed container's name is still listed

Expected behavior The removed container should not be listed.

Additional context Add any other context about the problem here.

benkuper commented 6 months ago

This is due to the fact that the script structure is not always synchronized with the real structure, only on script reload. With the current scripting system, it would be dangerous to have full synchronization on structure change. The new scripting system (when we'll have time to work on it) will take care of this and will be optimized to ensure full synchronized access between script and native structure

7omas commented 5 months ago

Environment

Describe the bug Hi. seems to be related to a crash that I keep getting after using script to remove parameters and trying to re-add a new set where received items might have the same name as the previously removed items.

To Reproduce

  1. use addParameter() to create a number of items (Works)
  2. use removeParameter() to clear out a subsection ov items (Seems to work, they are not shown in the UI)
  3. try to re-add new items in the the same spot with the same name

Expected behaviour Re-adding would repopulate the module value section and hopefully not result in a crash.

Additional context The crash does not trigger the WTF human on MacOS so I'm including the crash log, then the logger output below:

0   Chataigne                           0x00000001062b5df0 _ZN4juce11SystemStats17getStackBacktraceEv + 64
1   Chataigne                           0x00000001067d3a99 _ZN17CrashDumpUploader11handleCrashEi + 4281
2   Chataigne                           0x00000001062b5ecc _ZN4juceL11handleCrashEi + 12
3   libsystem_platform.dylib            0x00007ff80b91fdfd _sigtramp + 29
4   ???                                 0x0000000000000400 0x0 + 1024
5   libsystem_c.dylib                   0x00007ff80b855d24 abort + 123
6   libc++abi.dylib                     0x00007ff80b8c6082 abort_message + 241
7   libc++abi.dylib                     0x00007ff80b8c54cd _ZSt11__terminatePFvvE + 46
8   libc++abi.dylib                     0x00007ff80b8c5458 _ZSt9terminatev + 56
9   libc++abi.dylib                     0x00007ff80b8c5458 _ZSt9terminatev + 56
10  libc++abi.dylib                     0x00007ff80b8c5458 _ZSt9terminatev + 56
....
125 libc++abi.dylib                     0x00007ff80b8c5458 _ZSt9terminatev + 56
126 libc++abi.dylib                     0x00007ff80b8c5458 _ZSt9terminatev + 56
127 libc++abi.dylib                     0x00007ff80b8c5458 _ZSt9terminatev + 56
14:05:44    AppUpdater  App is up to date :) (Latest version online : 1.9.18b9)
14:05:52    Ontime  Connection opened
14:05:52    Script : Ontime Script loaded succesfully
14:06:35    CrashHandler    A Crash happened !
14:06:35    CrashHandler    0   Chataigne                           0x000000010872edf0 _ZN4juce11SystemStats17getStackBacktraceEv + 64
               1   Chataigne                           0x0000000108c4c4cc _ZN17CrashDumpUploader11handleCrashEi + 2796
               2   Chataigne                           0x000000010872eecc _ZN4juceL11handleCrashEi + 12
               3   libsystem_platform.dylib            0x00007ff80b91fdfd _sigtramp + 29
               4   CoreFoundation                      0x00007ff80b9b7121 CFRunLoopWakeUp + 367
               5   Chataigne                           0x0000000107f26ab2 _ZNSt3__110__function6__funcIPFN4juce3varERKNS3_18NativeFunctionArgsEENS_9allocatorIS8_EES7_EclES6_ + 18
               6   Chataigne                           0x000000010874f71c _ZNK4juce16JavascriptEngine10RootObject12FunctionCall14invokeFunctionERKNS1_5ScopeERKNS_3varES8_ + 588
               7   Chataigne                           0x0000000108750500 _ZNK4juce16JavascriptEngine10RootObject12FunctionCall9getResultERKNS1_5ScopeE + 1312
               8   Chataigne                           0x0000000108748eb8 _ZNK4juce16JavascriptEngine10RootObject10Expression7performERKNS1_5ScopeEPNS_3varE + 24
               9   Chataigne                           0x00000001087530e0 _ZNK4juce16JavascriptEngine10RootObject14BlockStatement7performERKNS1_5ScopeEPNS_3varE + 64
               10  Chataigne                           0x00000001087529d3 _ZNK4juce16JavascriptEngine10RootObject13LoopStatement7performERKNS1_5ScopeEPNS_3varE + 131
               11  Chataigne                           0x00000001087530e0 _ZNK4juce16JavascriptEngine10RootObject14BlockStatement7performERKNS1_5ScopeEPNS_3varE + 64
               12  Chataigne                           0x0000000108752c9d _ZNK4juce16JavascriptEngine10RootObject11IfStatement7performERKNS1_5ScopeEPNS_3varE + 77
               13  Chataigne                           0x00000001087530e0 _ZNK4juce16JavascriptEngine10RootObject14BlockStatement7performERKNS1_5ScopeEPNS_3varE + 64
               14  Chataigne                           0x0000000108752c9d _ZNK4juce16JavascriptEngine10RootObject11IfStatement7performERKNS1_5ScopeEPNS_3varE + 77
               15  Chataigne                           0x00000001087530e0 _ZNK4juce16JavascriptEngine10RootObject14BlockStatement7performERKNS1_5ScopeEPNS_3varE + 64
               16  Chataigne                           0x000000010874fce5 _ZNK4juce16JavascriptEngine10RootObject14FunctionObject6invokeERKNS1_5ScopeERKNS_3var18NativeFunctionArgsE + 325
               17  Chataigne                           0x000000010874f7a4 _ZNK4juce16JavascriptEngine10RootObject12FunctionCall14invokeFunctionERKNS1_5ScopeERKNS_3varES8_ + 724
               18  Chataigne                           0x0000000108750162 _ZNK4juce16JavascriptEngine10RootObject12FunctionCall9getResultERKNS1_5ScopeE + 386
               19  Chataigne                           0x0000000108748eb8 _ZNK4juce16JavascriptEngine10RootObject10Expression7performERKNS1_5ScopeEPNS_3varE + 24
               20  Chataigne                           0x00000001087530e0 _ZNK4juce16JavascriptEngine10RootObject14BlockStatement7performERKNS1_5ScopeEPNS_3varE + 64
               21  Chataigne                           0x0000000108752c9d _ZNK4juce16JavascriptEngine10RootObject11IfStatement7performERKNS1_5ScopeEPNS_3varE + 77
               22  Chataigne                           0x0000000108752c9d _ZNK4juce16JavascriptEngine10RootObject11IfStatement7performERKNS1_5ScopeEPNS_3varE + 77
               23  Chataigne                           0x0000000108752c9d _ZNK4juce16JavascriptEngine10RootObject11IfStatement7performERKNS1_5ScopeEPNS_3varE + 77
               24  Chataigne                           0x0000000108752c9d _ZNK4juce16JavascriptEngine10RootObject11IfStatement7performERKNS1_5ScopeEPNS_3varE + 77
               25  Chataigne                           0x0000000108752c9d _ZNK4juce16JavascriptEngine10RootObject11IfStatement7performERKNS1_5ScopeEPNS_3varE + 77
               26  Chataigne                           0x0000000108752c9d _ZNK4juce16JavascriptEngine10RootObject11IfStatement7performERKNS1_5ScopeEPNS_3varE + 77
               27  Chataigne                           0x0000000108752c9d _ZNK4juce16JavascriptEngine10RootObject11IfStatement7performERKNS1_5ScopeEPNS_3varE + 77
               28  Chataigne                           0x00000001087530e0 _ZNK4juce16JavascriptEngine10RootObject14BlockStatement7performERKNS1_5ScopeEPNS_3varE + 64
               29  Chataigne                           0x000000010874fce5 _ZNK4juce16JavascriptEngine10RootObject14FunctionObject6invokeERKNS1_5ScopeERKNS_3var18NativeFunctionArgsE + 325
               30  Chataigne                           0x000000010875520e _ZNK4juce16JavascriptEngine10RootObject5Scope19findAndInvokeMethodERKNS_10IdentifierERKNS_3var18NativeFunctionArgsERS6_ + 222
               31  Chataigne                           0x0000000108ba6e43 _ZN6Script12callFunctionERKN4juce10IdentifierENS0_5ArrayINS0_3varENS0_20DummyCriticalSectionELi0EEEPNS0_6ResultE + 483
               32  Chataigne                           0x0000000108ba6b7f _ZN13ScriptManager22callFunctionOnAllItemsERKN4juce10IdentifierENS0_5ArrayINS0_3varENS0_20DummyCriticalSectionELi0EEE + 127
               33  Chataigne                           0x0000000108c396ca _ZN13ScriptManager22callFunctionOnAllItemsERKN4juce10IdentifierENS0_3varE + 122
               34  Chataigne                           0x00000001084a5f3f _ZN21WebSocketClientModule15messageReceivedERKN4juce6StringE + 111
               35  Chataigne                           0x0000000108d69d06 _ZN4juce12ListenerListIN25SimpleWebSocketClientBase8ListenerENS_5ArrayIPS2_NS_20DummyCriticalSectionELi0EEEE20callCheckedExcludingIZNS7_20callCheckedExcludingINS7_19DummyBailOutCheckerEJRKNS_6StringEEJSB_EEEvS4_RKT_MS2_FvDpT0_EDpOT1_EUlRS2_E_SA_EEvS4_RKT0_OSE_ + 614
               36  Chataigne                           0x0000000108d67939 _ZN21SimpleWebSocketClient17onMessageCallbackENSt3__110shared_ptrIN9SimpleWeb16SocketClientBaseIN4asio19basic_stream_socketINS4_2ip3tcpENS4_8executorEEEE10ConnectionEEENS1_INSA_9InMessageEEE + 361
               37  Chataigne                           0x0000000108d69828 _ZNSt3__110__function6__funcINS_6__bindIM21SimpleWebSocketClientFvNS_10shared_ptrIN9SimpleWeb16SocketClientBaseIN4asio19basic_stream_socketINS7_2ip3tcpENS7_8executorEEEE10ConnectionEEENS4_INSD_9InMessageEEEEJPS3_RKNS_12placeholders4__phILi1EEERKNSM_ILi2EEEEEENS_9allocatorIST_EEFvSF_SH_EEclEOSF_OSH_ + 72
               38  Chataigne                           0x0000000108d75698 _ZN4asio6detail17read_dynbuf_v1_opINS_19basic_stream_socketINS_2ip3tcpENS_8executorEEENS_19basic_streambuf_refINSt3__19allocatorIcEEEENS0_18transfer_exactly_tEZN9SimpleWeb16SocketClientBaseIS6_E20read_message_contentERKNS8_10shared_ptrINSF_10ConnectionEEEmEUlRKNS8_10error_codeEmE_EclESN_mi + 3064
               39  Chataigne                           0x0000000108d7462c _ZN4asio6detail23reactive_socket_recv_opINS_17mutable_buffers_1ENS0_17read_dynbuf_v1_opINS_19basic_stream_socketINS_2ip3tcpENS_8executorEEENS_19basic_streambuf_refINSt3__19allocatorIcEEEENS0_18transfer_exactly_tEZN9SimpleWeb16SocketClientBaseIS8_E20read_message_contentERKNSA_10shared_ptrINSH_10ConnectionEEEmEUlRKNSA_10error_codeEmE_EENS0_18io_object_executorIS7_EEE11do_completeEPvPNS0_19scheduler_operationESP_m + 428
               40  Chataigne                           0x00000001084c3d45 _ZN4asio6detail9scheduler3runERNSt3__110error_codeE + 3141
               41  Chataigne                           0x0000000108d675fd _ZN21SimpleWebSocketClient6initWSEv + 2861
               42  Chataigne                           0x0000000108d66277 _ZN25SimpleWebSocketClientBase3runEv + 55
               43  Chataigne                           0x0000000108704887 _ZZN4juce6Thread18createNativeThreadENS0_8PriorityEEN4$_288__invokeEPv + 551
               44  libsystem_pthread.dylib             0x00007ff80b90a4e1 _pthread_start + 125
               45  libsystem_pthread.dylib             0x00007ff80b905f6b thread_start + 15
ziginfo commented 5 months ago

solved.... thanks !! :)

benkuper commented 5 months ago

This is 2 different topics :

The methods are script.refreshEnvironment() and container.clear(), container.getContainers(), container.getControllables() The bleeding edge has those methods now