leostera / reactor

🚀 Native Actors for Reason and OCaml
70 stars 5 forks source link

[core] Safer packet parsing #17

Closed leostera closed 5 years ago

leostera commented 5 years ago

Instead of just blowing up on a packet that can't be read, return an optional value.

leostera commented 5 years ago

This seems to break the shutdown behavior entirely! 💥 and turns it into a fork bomb 💣 — that's a very unexpected change, really.

leostera commented 5 years ago

Ended up building a small tools to split logs, makes it easier to see what the hell is going on:

ostera/reactor λ esy dune exec ./examples/dummy.exe 2>&1 | esy dune exec tools/log_splitter.exe
Process [54585]:
dummy.exe: [INFO] [54585] Beginning scheduler loop...
dummy.exe: [INFO] [54585] Setting up scheduler...

Process [54582]:
dummy.exe: [INFO] [54582] Scheduler shutting down...
dummy.exe: [INFO] [54582] Beginning scheduler loop...
dummy.exe: [INFO] [54582] Setting up scheduler...

Process [54581]:
dummy.exe: [INFO] [54581] Scheduler shutting down...
dummy.exe: [INFO] [54581] Beginning scheduler loop...
dummy.exe: [INFO] [54581] Setting up scheduler...

Process [54579]:
dummy.exe: [INFO] [54579] Beginning scheduler loop...
dummy.exe: [INFO] [54579] Setting up scheduler...

Process [54587]:
dummy.exe: [INFO] [54587] Scheduler shutting down...
dummy.exe: [INFO] [54587] Beginning scheduler loop...
dummy.exe: [INFO] [54587] Setting up scheduler...

Process [54571]:
dummy.exe: [INFO] [54571] Node shutdown completed.
dummy.exe: [INFO] [54571] Waiting for 4 schedulers to finish...
dummy.exe: [INFO] [54571] Node shutting down...
dummy.exe: [INFO] [54571] Beginning node's coordinating loop...
dummy.exe: [INFO] [54571] Spawned 4/4 schedulers: 54586, 54585, 54587, 54588
dummy.exe: [INFO] [54571] Spawning 4/4
dummy.exe: [INFO] [54571] Spawning 3/4
dummy.exe: [INFO] [54571] Spawning 2/4
dummy.exe: [INFO] [54571] Spawning 1/4
dummy.exe: [INFO] [54571] Node shutdown completed.
dummy.exe: [INFO] [54571] Waiting for 4 schedulers to finish...
dummy.exe: [INFO] [54571] Node shutting down...
dummy.exe: [INFO] [54571] Beginning node's coordinating loop...
dummy.exe: [INFO] [54571] Spawned 4/4 schedulers: 54580, 54582, 54581, 54579
dummy.exe: [INFO] [54571] Spawning 4/4
dummy.exe: [INFO] [54571] Spawning 3/4
dummy.exe: [INFO] [54571] Spawning 2/4
dummy.exe: [INFO] [54571] Spawning 1/4

Process [54580]:
dummy.exe: [INFO] [54580] Scheduler shutting down...
dummy.exe: [INFO] [54580] Beginning scheduler loop...
dummy.exe: [INFO] [54580] Setting up scheduler...

Process [54586]:
dummy.exe: [INFO] [54586] Scheduler shutting down...
dummy.exe: [INFO] [54586] Beginning scheduler loop...
dummy.exe: [INFO] [54586] Setting up scheduler...

Process [54588]:
dummy.exe: [INFO] [54588] Scheduler shutting down...
dummy.exe: [INFO] [54588] Beginning scheduler loop...
dummy.exe: [INFO] [54588] Setting up scheduler...
leostera commented 5 years ago

Fixed the printing order

λ esy dune exec ./examples/dummy.exe 2>&1 | esy dune exec tools/log_splitter.exe
Process [58150]:
dummy.exe: [INFO] [58150] Spawning 1/4
dummy.exe: [INFO] [58150] Spawning 2/4
dummy.exe: [INFO] [58150] Spawning 3/4
dummy.exe: [INFO] [58150] Spawning 4/4
dummy.exe: [INFO] [58150] Spawned 4/4 schedulers: 58160, 58158, 58159, 58161
dummy.exe: [INFO] [58150] Beginning node's coordinating loop...
dummy.exe: [INFO] [58150] Node shutting down...
dummy.exe: [INFO] [58150] Waiting for 4 schedulers to finish...
dummy.exe: [INFO] [58150] Node shutdown completed.
dummy.exe: [INFO] [58150] Spawning 1/4
dummy.exe: [INFO] [58150] Spawning 2/4
dummy.exe: [INFO] [58150] Spawning 3/4
dummy.exe: [INFO] [58150] Spawning 4/4
dummy.exe: [INFO] [58150] Spawned 4/4 schedulers: 58164, 58165, 58166, 58163
dummy.exe: [INFO] [58150] Beginning node's coordinating loop...
dummy.exe: [INFO] [58150] Node shutting down...
dummy.exe: [INFO] [58150] Waiting for 4 schedulers to finish...
dummy.exe: [INFO] [58150] Node shutdown completed.

Process [58158]:
dummy.exe: [INFO] [58158] Setting up scheduler...
dummy.exe: [INFO] [58158] Beginning scheduler loop...
dummy.exe: [INFO] [58158] Scheduler shutting down...

Process [58159]:
dummy.exe: [INFO] [58159] Setting up scheduler...
dummy.exe: [INFO] [58159] Beginning scheduler loop...
dummy.exe: [INFO] [58159] Scheduler shutting down...

Process [58160]:
dummy.exe: [INFO] [58160] Setting up scheduler...
dummy.exe: [INFO] [58160] Beginning scheduler loop...
dummy.exe: [INFO] [58160] Scheduler shutting down...

Process [58163]:
dummy.exe: [INFO] [58163] Setting up scheduler...
dummy.exe: [INFO] [58163] Beginning scheduler loop...
dummy.exe: [INFO] [58163] Scheduler shutting down...

Process [58164]:
dummy.exe: [INFO] [58164] Setting up scheduler...
dummy.exe: [INFO] [58164] Beginning scheduler loop...
dummy.exe: [INFO] [58164] Scheduler shutting down...

Process [58165]:
dummy.exe: [INFO] [58165] Setting up scheduler...
dummy.exe: [INFO] [58165] Beginning scheduler loop...