Back Midas Rome Roody Rootana
  Root Display GUI, Page 1 of 7  Not logged in ELOG logo
ID Date Author Topic Subject
  155   26 Mar 2021 Alexey KalininBug Reportroody failed to start
Also, 
Mine TDirectory fOnlineHistDir (rootana online ) has more then 1000 histograms 
with difficult hierarchy. Starting roody -P (TNEtDirectory support) takes 30-60 
seconds, when jsroot THttpServer ready to go in a moment.
> roody failed to start with -P flag
> running rootana analyzer with -P argument
> commenting RecursiveRemove in TNetDirectory(.cxx .h) (rootana)  helps.
> Any other suggestions?
> Alexey.
  154   19 Mar 2021 Alexey KalininBug Reportroody failed to start
roody failed to start with -P flag
running rootana analyzer with -P argument
commenting RecursiveRemove in TNetDirectory(.cxx .h) (rootana)  helps.
Any other suggestions?
Alexey.
  153   03 Jun 2014 Dan MelconianBug ReportZeroing spectra using XML data source?
When we connect using TNet, we can zero spectra on the fly (which is
super-useful).  Using Xml (which is infinitely faster to load), it says
"ResetAll:  http://trinatdaq:9091: not implemented".  I guess the Xml way is
reading a text file rather than accessing the root file, so it isn't exactly
trivial to implement this, eh?  However, if someone brilliant knows how to do
this, that would really be great as it is really a nice feature when debugging
things.
  152   25 May 2012 Konstantin OlchanskiBug FixFixed the "Zones" menu
The "Zones" manu has not been working right - if you have a canvas open with one 
histogram plotted and you select Zones "2x2", nothing happens. The expected 
action is to have the canvas divide itself into 4 pads (2x2) and the one 
histogram to show up in the first pad. That's how it works now.

svn rev 240.
K.O.
  151   24 May 2012 Konstantin OlchanskiInforemoved ROOTSYS check
I removed the checks for ROOTSYS being the same at run time and compilation time. 
These checks never worked right and are unnecessary since we always install roody 
separately for each experiment and ROOTSYS settings are always consistent.
K.O.
  150   24 May 2012 Konstantin OlchanskiForumtest
test of Roody forum email notification. K.O.
  149   24 May 2012 Konstantin OlchanskiForumHow to access the SVN repo anonymously?
> I found that the SVN repo is forbidden for anonymous users now.

It is possible that you are referencing the SVN repo using the "svn:" access method. This access method was recently 
disabled.

Please switch to the "https:" method (username/password svn/svn) using this command:

cd .../roody
svn switch --relocate svn://ladd00.triumf.ca/roody https://ladd00.triumf.ca/svn/roody

K.O.
  148   13 May 2012 Konstantin OlchanskiForumHow to access the SVN repo anonymously?
> I found that the SVN repo is forbidden for anonymous users now.

Please use username "svn", password "svn", per instructions here:
http://www.triumf.info/wiki/DAQwiki/index.php/DaqSvn

K.O.
  147   23 Feb 2012 Exaos LeeForumHow to access the SVN repo anonymously?
I found that the SVN repo is forbidden for anonymous users now.
  146   25 May 2011 Jackie GlisterForumRefresh problem when drawing groups
I'm having a Roody refresh problem: when I draw groups in online mode the entire
canvas is refreshed with the most recently selected single histogram, instead of
the group.  I used svn to install the most recent version (svn checkout
svn://ladd00.triumf.ca/roody/trunk roody).  Any help would be greatly appreciated!
  145   19 Oct 2010 Konstantin OlchanskiBug Fixroody update, fix open of
> And you thought that roody was dead? Well, here is an update - implement "reopen" for ROOT files, add 
> "reopen" button to main menu, fix duplicated histogram names after "reopen" (at the cost of losing display 
> of histogram titles in the tree view).
> K.O.

Forgot to mention the main reason of this update: when looking at ROOT files, ROODY could not open any subdirectories because of some name 
changes inside ROOT. Now fixed.

ROODY svn rev 236
svn checkout https://ladd00.triumf.ca/svn/roody/trunk roody
K.O.
  144   19 Oct 2010 Konstantin OlchanskiInforoody good on macos 10.6.4
For the record, ROODY svn rev 236 builds and runs on MacOS 10.6.4 with ROOT 5.26.00c. K.O.
  143   19 Oct 2010 Konstantin OlchanskiBug Fixroody update
And you thought that roody was dead? Well, here is an update - implement "reopen" for ROOT files, add 
"reopen" button to main menu, fix duplicated histogram names after "reopen" (at the cost of losing display 
of histogram titles in the tree view).
K.O.
  142   22 Nov 2009 Exaos LeeSuggestionNew main.cxx for roody
The original "main.cxx" always produced "segmentation fault" on my system. So I 
rewrite a new one as the attached "main_el.cxx". It works stable on my systems. I 
use "getopt.h" to parse the command line options. Also, the options are altered 
as the following:
-------------------
--mhost, -M <mhost>   connect to MIDAS server <mhost>
--rhost, -R <rhost>   connect to ROOT server <rhost>
--port, -p <port>     connect to port <port>
--config, -c <xml>    Using config file <xml> in XML format
-------------------
The main_el.cxx doesn't pass options to TApplication except root file names. 
Please see the source in detail. I hope it may help.
Attachment 1: main_el.cxx
//
// main.cxx
//
// $Id$
//

#include <cstdlib>
#include <iostream>
#include <string>
#include <getopt.h>
using std::cout;
using std::endl;
using std::cerr;

#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <signal.h>

#ifdef OS_UNIX
#include <unistd.h>
#endif

#ifdef OS_WINNT
#include <process.h>
#endif 

#include "Roody.h"
#include "TApplication.h"
#include "rootsys.h"

//******** Command line options *************
static char* pname = NULL;
static const char* optStr = "M:R:p:c:h?";
static const struct option opts[] = {
  {"mhost", required_argument, NULL, 'M'},
  {"rhost", required_argument, NULL, 'R'},
  {"port",  required_argument, NULL, 'p'},
  {"config",required_argument, NULL, 'c'},
};

void usage()
{
  cout << "Usage:\n  " << pname 
       << " [options] [file1.root] [file2.root] .. [filen.hbook]" << endl
       << endl
       << "Options:" << endl
       << "  --mhost" << endl
       << "  -M <mhost>    -- Connect to MIDAS server <mhost>" << endl
       << "  --rhost" << endl
       << "  -R <rhost>    -- Connect to ROOT server <rhost>" << endl
       << "  --port" << endl
       << "  -p <port>     -- Connect to port <port>" << endl
       << "  --config" << endl
       << "  -c <xmlfile>  -- Using config file in XML format" << endl << endl
       << "  [files.root]  -- Load .root files" << endl
       << "  [files.hbook] -- Load .hbook files" << endl << endl;
}

//******** Main procedure *******************
int main(int argc, char *argv[])
{
  setbuf(stdout, 0);
  setbuf(stderr, 0);
  pname = argv[0];

#ifndef OS_WINNT
  signal(SIGBUS,  SIG_DFL);
  signal(SIGSEGV, SIG_DFL);
  signal(SIGPIPE, SIG_IGN);

  char const *env = getenv("ROOTSYS");  // enforce compiled-in ROOTSYS settings
  if (!env || strcmp(env,rootsys))  {
      struct stat st;
      int status = stat(rootsys,&st);
      if (status != 0)	{
	cerr << "main.cxx: Cannot use compiled-in ROOTSYS=\'"
	     << rootsys << "\': stat() error "
	     << errno << " (" << strerror(errno) << ")\n";
      } else if (st.st_mode&S_IFDIR == 0) {
	cerr << "main.cxx: Cannot use compiled-in ROOTSYS=\'"
	     << rootsys << "\', st_mode is 0"
	     << st.st_mode << ", probably not a directory\n";
      } else {
	cerr << "main.cxx: Re-executing \'" << argv[0]
	     << "\' with compiled-in ROOTSYS=\'" << rootsys << "\'\n";
	setenv( "ROOTSYS", rootsys, 1);
	execvp( argv[0], argv ); // does not return
	cerr << "execv(" << argv[0] << ") error " << errno
	     << " (" << strerror(errno) << ")\n";
	exit(1);
      }

      printf("main.cxx: Continuing with ROOTSYS=\'%s\' from local environment\n", env);
  }
#endif

  char** filenames = NULL;
  char*  hostname  = NULL;
  char*  nhostname = NULL;
  char*  xmlname   = NULL;
  int port = 0;
  int fileCount = 0;
  int longIdx = 0;

  int opt;
  std::string temp;
  do {
    opt = getopt_long(argc, argv, optStr, opts, &longIdx);
    switch(opt) {
    case 'M': hostname = optarg; break;
    case 'R': nhostname = optarg; break;
    case 'p': port = atoi(optarg); break;
    case 'c':
      temp = optarg;
      if(temp.find(".xml") == temp.npos) temp += ".xml";
      strcpy(xmlname, temp.c_str());
      break;
    case 'h':
    case '?':
    case 0:  usage();  return 0;
    break;
    default: break;
    }
  } while( opt != -1 );
  fileCount = argc - optind;
  if(fileCount > 0)
    filenames = argv + optind;

  TApplication* app = new TApplication( "App", 0, NULL );
  Roody* roody = new Roody();

  if (xmlname)
    roody->RestoreFile(xmlname);
  else
    roody->RestoreFile(NULL);

  if (hostname)
    roody->ConnectServer(hostname);

  if (nhostname)
    roody->ConnectNetDirectory(nhostname);

  for (int i=0; i<fileCount; i++)
    roody->OpenFile(filenames[i]);

  app->Run(kTRUE);
  return 0;
}

// end of file
  141   23 Jul 2009 Exaos LeeBug Fix[PATCH] ROODY kills analyzer too!!

Randolf Pohl wrote:
Hi,

I have fixed the bug:

diff roody_233/include/DataSourceTNetFolder.h roody_233_fixed/include/DataSourceTNetFolder.h
100c100
< uint32_t p = 0;
---
> uintptr_t p = 0;

(Both Exaos and I were/are using roody on 64 bit machines.)

Best regards,

Randolf


Oh, GOD! From Wednesday, I have took almost one day to find the BUG and fix it. Then I found your post here. Tongue
  140   17 May 2009 Randolf PohlBug Fix[PATCH] ROODY kills analyzer too!!
Hi,

I have fixed the bug:

diff roody_233/include/DataSourceTNetFolder.h roody_233_fixed/include/DataSourceTNetFolder.h
100c100
< uint32_t p = 0;
---
> uintptr_t p = 0;

(Both Exaos and I were/are using roody on 64 bit machines.)

Best regards,

Randolf
  139   07 Mar 2008 Stefan RittBug ReportRevision 221 works! But not remotely.

Randolf Pohl wrote:
Just an idea: Are all necessary ports open on the receiving machine? Maybe the analyzer is just collateral damage, in reality roody commits suicide because the firewall is nasty to him?


The connection between ROODY and the analyzer works only on a single port, but if anybody wants to connect via the underlying MIDAS layer there is a two-way communication: 1) "odbedit -h <host>" connects to host <host> on port 1175 and 2) mserver on <host> connects back to odbedit on an arbitrary port. For 2), one has to excempt the client program (in this case odbedit) from the firewall for all ports on the remote client and the server program port 1175 on the <host> machine. But I'm not sure if this is your problem right now.
  138   07 Mar 2008 Randolf PohlBug ReportRevision 221 works! But not remotely.
Hi,


Exaos Lee wrote:
I recompiled the roody of revision 221 and found this revision works. But when I run roody remotely, it still keeps killing the analyzer 100%. Frown


We used 220 (not 221) successfully, but only locally.
Now that you say it I think I recall I could not get roody to run remotely. Don't remember the exact reasons, though.
What I did then was to "ssh -X" from the remote machine into the backend and start roody there (Actually a button with a beautiful picture enabled the users to do so).

Just an idea: Are all necessary ports open on the receiving machine? Maybe the analyzer is just collateral damage, in reality roody commits suicide because the firewall is nasty to him?

I don't have my machines set up at the moment. One of the machines stayed in a box at PSI. So I can't really help you, I am sorry. I think it's time for the specialists now. Anybody there???!?! Smile

Good luck,

Randolf
  137   04 Mar 2008 Exaos LeeBug ReportRevision 221 works! But not remotely.
I recompiled the roody of revision 221 and found this revision works. But when I run roody remotely, it still keeps killing the analyzer 100%. Frown

Hope somebody can fix it.
  135   03 Mar 2008 Randolf PohlBug ReportROODY kills analyzer too!!
Hi,

I had the very same problem last summer during our beam time. Don't know the revision, but it was the tarball I downloaded around mid-July.
Symptom: The MIDAS (online) analyzer crashed as soon as roody was started. Started, i.e. before any user interaction became even possible. And the crash happened always. 100.0%.

My workaround was: Use roody rev. 220.
No crashes, beam time saved.

I attach 2 outputs I saved at that time.

Oh, yes: I still have the sources and such. Last modified date is July 9 and earlier (see attachment 3). I can send them around if you want to find the revision and bracket the offending commits. (I wish you were using "git". Ever read about git-bisect?)

Cheers,

Randolf

PS: Konstantin, I had promised you to try and pin down the problem after the run. Obviously I forgot, sorry. Please tell me if I can be of any help now.
Attachment 1: crash-analyzer.txt
Lamb_be>./bin/analyzer -e lamb07
Connect to experiment lamb07...OK
Loading previous online histos from /data/lamb/2007/data/last.root
Root server listening on port 9090...
Running analyzer online. Stop with "!"

 *** Break *** segmentation violation
Using host libthread_db library "/lib64/libthread_db.so.1".
Attaching to program: /proc/2785/exe, process 2785
[Thread debugging using libthread_db enabled]
[New Thread 46971434529216 (LWP 2785)]
[New Thread 1090525504 (LWP 2789)]
[New Thread 1082132800 (LWP 2786)]
0x00002ab8635f5302 in __select_nocancel () from /lib64/libc.so.6
Thread 3 (Thread 1082132800 (LWP 2786)):
#0  0x00002ab85ecde0ab in __accept_nocancel () from /lib64/libpthread.so.0
#1  0x00002ab85f82d510 in TUnixSystem::AcceptConnection ()
   from /usr/local/root/lib/root/libCore.so.5.14
#2  0x00002ab85f822592 in TServerSocket::Accept ()
   from /usr/local/root/lib/root/libCore.so.5.14
#3  0x000000000041a9ff in root_socket_server (arg=<value optimized out>)
    at src/mana.c:5454
#4  0x00002ab862df728a in TThread::Function ()
   from /usr/local/root/lib/root/libThread.so.5.14
#5  0x00002ab85ecd709e in start_thread () from /lib64/libpthread.so.0
#6  0x00002ab8635fb4cd in clone () from /lib64/libc.so.6
#7  0x0000000000000000 in ?? ()

Thread 2 (Thread 1090525504 (LWP 2789)):
#0  0x00002ab8635cce1f in waitpid () from /lib64/libc.so.6
#1  0x00002ab863575491 in do_system () from /lib64/libc.so.6
#2  0x00002ab863575817 in system () from /lib64/libc.so.6
#3  0x00002ab85f831851 in TUnixSystem::StackTrace ()
   from /usr/local/root/lib/root/libCore.so.5.14
#4  0x00002ab85f830a4a in TUnixSystem::DispatchSignals ()
   from /usr/local/root/lib/root/libCore.so.5.14
#5  <signal handler called>
#6  0x000000000041b339 in root_server_thread (arg=<value optimized out>)
    at src/mana.c:5333
#7  0x00002ab862df728a in TThread::Function ()
   from /usr/local/root/lib/root/libThread.so.5.14
#8  0x00002ab85ecd709e in start_thread () from /lib64/libpthread.so.0
#9  0x00002ab8635fb4cd in clone () from /lib64/libc.so.6
#10 0x0000000000000000 in ?? ()

Thread 1 (Thread 46971434529216 (LWP 2785)):
#0  0x00002ab8635f5302 in __select_nocancel () from /lib64/libc.so.6
#1  0x00000000004449e7 in ss_suspend (millisec=1000, msg=0)
    at src/system.c:3285
#2  0x000000000043acf3 in cm_yield (millisec=1000) at src/midas.c:3607
#3  0x000000000041afea in loop_online () at src/mana.c:3785
#4  0x000000000041dfba in main (argc=<value optimized out>, 
    argv=<value optimized out>) at src/mana.c:5756
#0  0x00002ab8635f5302 in __select_nocancel () from /lib64/libc.so.6
[midas.c:1592:] cm_disconnect_experiment not called at end of program
Lamb_be>
Attachment 2: crash-roody.txt
Lamb_be>roody -h localhost
main.cxx: Re-executing 'roody' with compiled-in ROOTSYS='/usr/local/root'
SetOptStat("nemri") got 1001111
Unable to open file "default.xml": No such file or directory
ReadRemoteObject trig_start from folder histos
Folder histos pointer 0
ReadRemoteObject trig_pattern from folder histos
ReadRemoteObject trig_tdc from folder histos
SysError in <TUnixSystem::UnixSend>: send (Broken pipe)
ReadRemoteObject trig_adc from folder histos
ReadRemoteObject trig_detector from folder histos
ReadRemoteObject trig_fadc from folder histos
ReadRemoteObject trig_cool from folder histos
ReadRemoteObject trig_display from folder histos
ReadRemoteObject lambdameter from folder histos
Attachment 3: roody-tarball-dir.txt
Lamb_be>l include/
total 68
-rw-r--r-- 1 root root  815 Sep 27  2006 CanvasLimits.h
-rw-r--r-- 1 root root 1453 Sep 27  2006 DataSourceBase.h
-rw-r--r-- 1 root root  833 Jul  9  2007 DataSourceNetDirectory.h
-rw-r--r-- 1 root root  683 Oct  7  2006 DataSourceTDirectory.h
-rw-r--r-- 1 root root 6016 Jul  8  2007 DataSourceTNetFolder.h
-rw-r--r-- 1 root root 1091 Jul  9  2007 MTGListTree.h
-rw-r--r-- 1 root root 7068 Jul  9  2007 Roody.h
-rw-r--r-- 1 root root 1112 Sep 27  2006 RoodyXML.h
-rw-r--r-- 1 root root 1883 Dec  5  2006 TAxisLimitsDialog.h
-rw-r--r-- 1 root root 1664 Sep 27  2006 TGTextDialog.h
-rw-r--r-- 1 root root 2519 Sep 27  2006 TPeakFindPanel.h
-rw-r--r-- 1 root root 4599 Sep 27  2006 mxml.h
-rw-r--r-- 1 root root   41 Jul 30  2007 rootsys.h
-rw-r--r-- 1 root root  558 Sep 27  2006 strlcpy.h
Lamb_be>l src/*.c*
-rw-r--r-- 1 root root    18 Aug 21  2006 src/.cvsignore
-rw-r--r-- 1 root root  4064 Jul  9  2007 src/DataSourceTDirectory.cxx
-rw-r--r-- 1 root root  5222 Jul  9  2007 src/MTGListTree.cxx
-rw-r--r-- 1 root root 75044 Jul  9  2007 src/Roody.cxx
-rw-r--r-- 1 root root  3587 Sep 27  2006 src/RoodyXML.cxx
-rw-r--r-- 1 root root  6798 Dec  5  2006 src/TAxisLimitsDialog.cxx
-rw-r--r-- 1 root root  4949 Sep 27  2006 src/TGTextDialog.cxx
-rw-r--r-- 1 root root 22120 Jul 25  2007 src/TPeakFindPanel.cxx
-rw-r--r-- 1 root root 22097 Sep 27  2006 src/TPeakFindPanel.cxx~
-rw-r--r-- 1 root root  3552 Jul  9  2007 src/main.cxx
-rw-r--r-- 1 root root 62288 Sep 27  2006 src/mxml.c
-rw-r--r-- 1 root root  2120 Sep 27  2006 src/strlcpy.c

ELOG V3.1.4-2e1708b5