midas on MacOSX yosemite

Issue #30 resolved
Ryan Loots created an issue

Hi

We seem to have an issue with getting midas, specifically, the analyser ( mana.cxx, analyzer.c ) to work correctly on Mac OSX Yosemite.

We did a git checkout of the latest midas version. ROOT version 34.33, and compiled the midas examples experiment, without modification. It was compiled with clang (6.10) ( Apple).

When exiting the analyser, it exists with Accept Connection (Software caused connection abort). Then loads of segmentation faults.

I tried debugging this in gdb, on the Mac, but since it seems to be threading, was difficult to track it down.

We've tested this on Mac OS ( Mountain leopard ), and it works.

Unfortunately, I'm not able to dump loads of debug output here now, since it is a students laptop and she's not here at the moment, but I will as soon as I can. But in the mean, I'm curious if anyone has tried compiling current midas on Mac OS X (yosemite ) and have issues with the default example experiment.

As added info, the student updated Xcode to the latest possible version, and this seems to have updated all dependent libraries.

Comments (5)

  1. dd1

    This is MacOS 10.10 or 10.9? We build, run and debug MIDAS on both, except for the analyzer part. The mana.c analyzer is very out of date wrt modern programming styles and modern analysis tools. For new experiments we direct people to use the ROOTANA analyzer or the ROME analyzer, both linked from https://midas.triumf.ca. The problem you see in the mana.c based analyzer should be fixable, but you have to send us more information than "it crashed" (also, there is no multithreading in mana.c, maybe there is one thread created for the data server, if enabled). K.O.

  2. Lee Pool

    " The mana.c analyzer is very out of date wrt modern programming styles and modern analysis tools. For new experiments we direct people to use the ROOTANA analyzer.. " yip, fully agree. Trying to move students and 'scientist' off old analyzer.c onto to ROOTANA. :(

    "also, there is no multithreading in mana.c, maybe there is one thread created for the data server, if enabled). " ... Yes, no multithreading, but it creates a root_server_thread, and with gdb running, it stopped at this location

      if (sock->Recv(request, sizeof(request)) <= 0)
    

    As mentioned, it was a students laptop, and we seem to have a few students running Mac OS X. As soon as I can I will produce more information. I was just curious if anyone has come across anything similar yet/before.

  3. dd1

    Note that the "midas server" code in mana.c is now even more obsolete - current versions of ROOT include an embedded web server (based on mongoose-civet) that can serve ROOT objects in XML and JSON format. Consider using that instead of the problematic multi-threaded midas server function in mana.c. K.O.

  4. Log in to comment