[Rock-dev] Stop command freezes orocos.rb script

Chris Mueller christoph.mueller at dfki.de
Tue Oct 25 18:45:21 CEST 2011


Hi everyone,

i'm currently running some benchmark tasks on different system with a 
simple setup and met an
annoying behaviour for my batch scripts calling 'stop' on a TaskContext.

I have a simple sender task which simple transmit a std::string message 
of a given size (specified by a property) and sends it a to receiver 
task located on another machine.

My script simple selects a specific deployment which contains always the 
same task but different update periodes.

When i running my setup with messages 1, 8, 128, 512, ... 2000000 Bytes 
and update frequencies 1 ... 1000, sometimes my script doesn't terminate 
(and blocks compeletey).

My Script has the following structure:

  # ... some initialstuff and argv handling
Nameservice::enable(:CORBA, ...)
Orocos.initialize
Orocos.run "SenderDeployment" do
    sender = TaskContext.get "Sender"
    recv = TaskContext.get "Receiver"

    # some connection and property handling ...

    sender.message_size = argv_message_size

    # run top a specific time
    system "top -d 0.1 -n 300 ..."

    sender.stop
    recv.stop

    puts "benchmark for #{freq} with #{size} finished"
end

I observed the following details:
  * sometimes sender.stop blocks completely this script (workaround: 
dont call it)
  * Script doesn't terminate because it blocks at the end of Orocos.run 
ruby block. (I assume
it also call stop automatically in all task of SenderDeployment und 
would be the same problem)
  * this behaviour seems to relate to the transmitted message size 
because its only a problem if
the message size is greater equal than 524288 Bytes (and it varies 
depending on the machine the
script is running)

Does anyone have an idea about the reason of this issue / behaviour?

Chris






More information about the Rock-dev mailing list