ossia / libossia

A modern C++, cross-environment distributed object model for creative coding and interaction scoring
https://ossia.io
GNU Lesser General Public License v3.0
204 stars 33 forks source link

ossia.device : "stop 0" message crash Max (Mac only) #602

Open matcham opened 3 years ago

matcham commented 3 years ago

after exposing the device on OSC with a message "expose osc" "stop 0" immediately crash Max

crash only on my Mac, on windows it works fine.

ossia-max release 1.0.10 (same problem when building from latest sources)

Antoine, tu vas pas aimer ça : même version de Max, même package ossia : chez @jln- ça plante pas :-s

de plus, après un tel plantage, je relance le même patch avec expose osc : pas de message d'erreur, mais le port de reception semble être occupé : pas moyen d'envoyer de message osc depuis l'extérieur. (par contre l'envoi de message fonctionne) il faut relancer Max, puis le quitter, puis le relancer pour que le port se libère.

autre étrangeté : le rapport ne crash n'apparait que après avoir relancé Max, et au moment exact ou j'instance un ossia.device. Comme si un truc restait coincé dans les tuyaux...

crash log :

Thread 56 Crashed: 0 libsystem_kernel.dylib 0x00007fff6fe7a96e os_fault_with_payload + 10 1 libsystem_kernel.dylib 0x00007fff6fe7b451 darwin_check_fd_set_overflow.cold.2 + 31 2 libsystem_kernel.dylib 0x00007fff6fe6667c __darwin_check_fd_set_overflow + 68 3 libossia-max.dylib 0x0000000140fd9878 oscpack::posix::SocketReceiveMultiplexerImplementation::Run() + 248 4 libossia-max.dylib 0x0000000140fd9775 oscpack::detail::SocketReceiveMultiplexer::Run() + 21 5 libossia-max.dylib 0x0000000140fd974e oscpack::detail::UdpListeningReceiveSocket::Run() + 30 6 libossia-max.dylib 0x0000000140fd96f3 osc::receiver::run_impl() + 67 7 libossia-max.dylib 0x0000000140fd96a8 osc::receiver::run()::'lambda'()::operator()() const + 24 8 libossia-max.dylib 0x0000000140fd963d decltype(std::1::forward<osc::receiver::run()::'lambda'()>(fp)()) std::1::invoke<osc::receiver::run()::'lambda'()>(osc::receiver::run()::'lambda'()&&) + 29 9 libossia-max.dylib 0x0000000140fd95a5 void std::1::thread_execute<std::1::unique_ptr<std::1::thread_struct, std::1::default_delete >, osc::receiver::run()::'lambda'()>(std::1::tuple<std::1::unique_ptr<std::1::thread_struct, std::1::default_delete >, osc::receiver::run()::'lambda'()>&, std::1::tuple_indices<>) + 37 10 libossia-max.dylib 0x0000000140fd8e86 void* std::1::thread_proxy<std::1::tuple<std::1::unique_ptr<std::1::thread_struct, std::1::default_delete >, osc::receiver::run()::'lambda'()> >(void*) + 118 11 libsystem_pthread.dylib 0x00007fff6ff1d109 _pthread_start + 148 12 libsystem_pthread.dylib 0x00007fff6ff18b8b thread_start + 15

matcham commented 3 years ago

Pas de panique, on dirait bien que ce problème est du en fait à un autre package qui empêche Max de finir de se charger complètement... (et qui fait que Max utilise 100% de cpu pour rien..) à confirmer, je teste ça sur la durée, et si c'est bon je ferme l'issue.

avilleret commented 3 years ago

hum, it seems that something is wrong with osc protocol at least. 'll investigate that asap