Problems with packages in root.5.27.04

Hi,

I am trying to upload and enable a few packages in PROOF and I have experienced problems in the latest ROOT version (5.27.04). The very same code works in 5.26.00. The problem seems to be in the PROOF-INF/SETUP.C file I use to load the package on the slaves. The session goes as follows:

[fanae127] /nfs/fanae/user/iglez/PROOF/ProofAnalysisFramework > root -b
  *******************************************
  *                                         *
  *        W E L C O M E  to  R O O T       *
  *                                         *
  *   Version   5.27/04      29 June 2010   *
  *                                         *
  *  You are welcome to visit our Web site  *
  *          http://root.cern.ch            *
  *                                         *
  *******************************************

ROOT 5.27/04 (tags/v5-27-04@34196, Aug 07 2010, 17:01:45 on linuxx8664gcc)

CINT/ROOT C/C++ Interpreter version 5.17.00, Dec 21, 2008
Type ? for help. Commands must be C++ statements.
Enclose multiple statements between { }.
root [0] TProof* proof = TProof::Open(" ")
 +++ Starting PROOF-Lite with 8 workers +++
Opening connections to workers: OK (8 workers)                 
Setting up worker servers: OK (8 workers)                 
PROOF set to parallel mode (8 workers)
root [1] proof->UploadPackage("packages/TCounterUI.par")
(Int_t)0
root [2] proof->EnablePackage("TCounterUI")
Error: Bad source file(unnamed macro) /mnt_pool/fanae105/user/iglez/.proof/packages/TCounterUI/./PROOF-INF/SETUP.C PROOF-INF/SETUP.C:1:
  unnamed macro has to be executed by 'x' command
*** Interpreter error recovered ***
Error in <TProofLite::LoadPackageOnClient>: macro 'TCounterUI/PROOF-INF/SETUP.C' could not be loaded: cannot continue
Error in <TProofLite::LoadPackageOnClient>: loading package TCounterUI on client failed

 *** Break *** segmentation violation



===========================================================
There was a crash.
This is the entire stack trace of all threads:
===========================================================
#0  0x0000003715e99d75 in waitpid () from /lib64/libc.so.6
#1  0x0000003715e3c331 in do_system () from /lib64/libc.so.6
#2  0x00002adadb4eb999 in TUnixSystem::StackTrace() ()
   from /mnt_pool/fanae105/root_releases/v5-27-04/lib/libCore.so
#3  0x00002adadb4e95b3 in TUnixSystem::DispatchSignals(ESignals) ()
   from /mnt_pool/fanae105/root_releases/v5-27-04/lib/libCore.so
#4  <signal handler called>
#5  0x00002adadbdcd992 in G__exec_statement ()
   from /mnt_pool/fanae105/root_releases/v5-27-04/lib/libCint.so
#6  0x00002adadbd3029e in G__exec_tempfile_core ()
   from /mnt_pool/fanae105/root_releases/v5-27-04/lib/libCint.so
#7  0x00002adadbd305de in G__exec_tempfile_fp ()
   from /mnt_pool/fanae105/root_releases/v5-27-04/lib/libCint.so
#8  0x00002adadbddfcef in G__process_cmd ()
   from /mnt_pool/fanae105/root_releases/v5-27-04/lib/libCint.so
#9  0x00002adadb4afded in TCint::ProcessLine(char const*, TInterpreter::EErrorCode*) () from /mnt_pool/fanae105/root_releases/v5-27-04/lib/libCore.so
#10 0x00002adadb413b93 in TApplication::ProcessLine(char const*, bool, int*) ()
   from /mnt_pool/fanae105/root_releases/v5-27-04/lib/libCore.so
#11 0x00002adadca841c3 in TRint::HandleTermInput() ()
   from /mnt_pool/fanae105/root_releases/v5-27-04/lib/libRint.so
#12 0x00002adadca82c57 in TTermInputHandler::Notify() ()
   from /mnt_pool/fanae105/root_releases/v5-27-04/lib/libRint.so
#13 0x00002adadca851ed in TTermInputHandler::ReadNotify() ()
   from /mnt_pool/fanae105/root_releases/v5-27-04/lib/libRint.so
#14 0x00002adadb4e8933 in TUnixSystem::CheckDescriptors() ()
   from /mnt_pool/fanae105/root_releases/v5-27-04/lib/libCore.so
#15 0x00002adadb4e8fdc in TUnixSystem::DispatchOneEvent(bool) ()
   from /mnt_pool/fanae105/root_releases/v5-27-04/lib/libCore.so
#16 0x00002adadb46a176 in TSystem::InnerLoop() ()
   from /mnt_pool/fanae105/root_releases/v5-27-04/lib/libCore.so
#17 0x00002adadb46d431 in TSystem::Run() ()
   from /mnt_pool/fanae105/root_releases/v5-27-04/lib/libCore.so
#18 0x00002adadb41207f in TApplication::Run(bool) ()
   from /mnt_pool/fanae105/root_releases/v5-27-04/lib/libCore.so
#19 0x00002adadca84de0 in TRint::Run(bool) ()
   from /mnt_pool/fanae105/root_releases/v5-27-04/lib/libRint.so
#20 0x000000000040100d in main ()
===========================================================


The crash is most likely caused by a problem in your script.
Try to compile it (.L myscript.C+g) and fix any errors.
If that does not help then please submit a bug report at
http://root.cern.ch/bugs. Please post the ENTIRE stack trace
from above as an attachment in addition to anything else
that might help us fixing this issue.

It seems unnamed macros are no more allowed here. Is this correct? Should I use a named macro for this?

Cheers,

Isidro

I checked with a named macro of the form:

void SETUP() {
    ...
}

and it worked. I must have skipped some announcement.

Hi Isidro,

As explained a bit in the release notes of 5.27/04 (but probably not enough emphasized) there were some additions to support arguments in the SETUP function. We tried to be backward compatible, and with ‘named’ macros we are. But, yes, to check the signature we need the macro to be named. I will check if this can be avoided. Anyhow, it has at least to be underlined in the release notes and documentation.

Thanks for reporting this.

Cheers, Gerri