Exception not always caught in Sun Studio 12

Hi,
We're using Sun Studio 12 (Sun C++ 5.9 SunOS_sparc Patch 124863-01 2007/07/25) on a Solaris 10 SPARC machine. In our applications an exception thrown is sometimes not caught in the try/catch statement and the program continues at an outer catch statement (which usually leads to the program exiting). So far I've not been able to reduce the code down to a simple example and I don't yet know what conditions causes this behaviour.
In general the code has a big try/catch statement in main. Somewhere deep in the code there is a second try/catch statement which protects against a piece of code which we know may throw an exception. This is usually a smart pointer being dereferenced. The act of dereferencing the smart pointer in turn causes an exception to be thrown which is caught internally in a third try/catch inside the dereference code. The exception is successfully caught and some clean up is done. Then the exception is re-thrown by either using a throw; statement or a new throw xmsg("...");. All our exceptions are always of type xmsg which simply takes a string argument.
When the problem manifests itself the second try/catch is ignored and the re-thrown exception is instead caught in the outer catch statement in main which causes the program to log an error and exit.
We have lots of code which is structured the same way and the same style of code works in many cases only to fail in some specific case. It's an elusive problem because the problem moves around and it also depends on how the program is compiled. It only seems to happen when compiled in debug mode. If I compile with -xO4 the problem seems to go away.
The problem also goes away or moves to a different place if the code has changed somewhere between compiles, i.e. some other developer has modified some code, not necessarily in the same are where the problem originally happened.
One thing we have is a function we call DoThrow (used to suppress a warning on an older compiler) defined like this:
void DoThrow(const std::string& msg)
  throw xmsg(msg);
}As an experiment I replaced the call to DoThrow with a straight throw xmsg(...) at a place where the first exception was thrown and the problem went away. I'm not sure if removing the call to DoThrow fixed the problem or if the minor restructuring of the code was enough to move the problem elsewhere.
For production releases we still use WorkShop 6, update 2 which does not have any problems like this. We really would like to upgrade to Sun Studio 12 because it's a much better compiler over all. We can't upgrade until we feel confident we have a workaround.
Does anyone have any thoughts on what might be wrong or any ideas on what I can do to narrow down the problem?
Thanks,
Krister

Many thanks. You've given me a few areas to focus on and I'll bring my house in order.
The only external C++ library we depend on is STLport 5.0.2 which we compile ourselves. It's currently compiled with 5.3 on Solaris 8 and I will recompile it with 5.9 on Solaris 10. All other external libraries are C libraries. Our own code is put in static libraries and linked statically. I've read that exceptions thrown in shared libraries can be problematic.
Your comment about complex conditional expressions (a ? f() : g()) is interesting. We've been bitten before by compiler bugs affecting those types of expressions. Destructors called twice or destructors called for temporaries never created. We may still have some conditional expressions like that.
The exception is of type xmsg, defined this way:
class xmsg
  public:
    xmsg(const char* s) : _msg(s) {}
    xmsg(const std::string& s) : _msg(s) {}
    const std::string& why() const { return _msg; }
  private:
    const std::string _msg;
};There are three catch blocks involved and all the try/catch statement look like this:
try
catch(const xmsg& msg)
}Here is a stack trace from dbx at the point where the exception is thrown the first time.
  [1] __exdbg_notify_of_throw(0xffbf4ae8, 0xffbf4ad0, 0x959b292c, 0xffff0000, 0x0, 0xfc00), at 0xfb6549b4
  [2] _ex_debug_handshake1(0x0, 0x101cb84, 0x1, 0x14ffc, 0xfb66a67c, 0xfb66ad38), at 0xfb655728
  [3] _ex_throw_body(0xfb66af80, 0x80b2ac, 0xfb66a67c, 0x14d9c, 0x0, 0xfb66af80), at 0xfb655934
  [4] __Crun::ex_throw(0xfb66afd0, 0x1460bf8, 0x7ead20, 0x0, 0x16538, 0x1), at 0xfb6558bc
=>[5] TransportSource<User>::Activate(this = 0x1624810, r = CLASS, _ARG3 = CLASS), line 39 in "TransportSource.H"
  [6] Source<User>::DoActivate(this = 0x162486c, r = CLASS, e = CLASS), line 272 in "Factory.H"
  [7] BaseFactory::Load(this = 0x16020a8, e = CLASS), line 2799 in "BaseFactory.C"
  [8] GPAuthorizationSource::Load(this = 0x15d2440), line 110 in "GPAuthorization.C"
  [9] ExchangeServer::ExchangeServer(this = 0xffbfa95c, argc = 8, argv = 0xffbfbaec), line 380 in "exchangeServer.C"
  [10] main(argc = 8, argv = 0xffbfbaec), line 1525 in "exchangeServer.C"Here is the code for the Activate function in stack frame 5. The exception thrown is the second one.
    virtual T& Activate(const Reference& r, Exemplar<T>&)
      _transport->In().Write(r);
      DemarshallStream out;
      _transport->Method(Process::Activate, out);
      if(!out.Data())
     throw xmsg("Failed to call Activate on server " + _transport->Name());
      if(!out.GetBool())
     throw xmsg("Server returned error: " + out.GetString());
      const ClassHandle& h = out.GetClassHandle(&_connection);
      // don't need to pass refresh flag here because a call to Activate
      // means the object is being loaded for the first time.
      BaseExemplar* x = _handle.GetFactory().Demarshall(h, out, false,
     &_connection, this);
      BaseTransportSource::DoActivate(out);
      if(!x)
     throw xmsg("Failed to activate ref: " + r.ExternalValue());
      return static_cast<T&>(*x->GetInstance());
    }The exception is caught (frame 7 in the stack trace above) and re-thrown in the below code, at the last throw statement.
void BaseFactory::Load(BaseExemplar& e)
  SourceMap::iterator p = _sources.find(&e._key->Type());
  if(p == _sources.end())
    throw xmsg("Factory<" + _handle.Name() + ">::Load - no source for: "
      + e._key->ExternalValue());
  AutoPointer<BaseGuard> g(Guard());
  std::list<BaseSource*>::iterator i = p->second.begin();
  while(true)
    try
      (*i)->_currentExemplar = &e;
      BO& x = (*i)->DoActivate(*e._key, e);
      (*i)->_currentExemplar = 0;
      if(!e._instance)
     e._instance = &x;
     Activate(e, ActivatedOld, 0);
      return;
    catch(const xmsg& msg)
      (*i)->_currentExemplar = 0;
      ++i;
      if(i == p->second.end())
     throw;
}There is a second try/catch one level up (stack frame 8, the call to GPAuthorizationSource::Load). Here's a snippet of that piece of code.
    try
      const Exemplar<User>& user = UserFactory::Instance().CreateExemplar(
     *new UserReference(authorizationTable._login.Value()));
      *user;
    catch(const xmsg& msg)
      Logger::Instance() << LogHeader << MsgClass(MsgClass::Error)
     << "Error PMAutorizationSource: " << msg.why() << EndMsg;
    // ...I put a break-point in the catch block in the above code but I never hit the break point and the exception is caught in an outer try/catch, an error is printed and the program exits.
  try
  catch(const xmsg& msg)
    std::cerr << "ERROR: " << msg.why() << std::endl;
  }I'm sorry I have not yet been able to produce a smaller example that can be compiled and tested in isolation. I know that's important in order to track down the problem. It seems like the smallest change in seemingly unrelated parts of the code makes the problem come or go.

Similar Messages

  • Migrating Solaris with out migrating Sun Studio

    HI ,
    Currently we are using sun studio 8 on solaris 8 to compile our application(C++).
    We are planning to migrate Solaris 8 to solaris 10. Will there be any problems, If we use sun studio 8 on sun solaris 10.
    Thanks and Regards,
    Venkat

    Mr.Bond wrote:
    HI ,
    Currently we are using sun studio 8 on solaris 8 to compile our application(C++).
    We are planning to migrate Solaris 8 to solaris 10. Will there be any problems, If we use sun studio 8 on sun solaris 10.Technically speaking, this combination is supported. However, it is rather old, it predates Solaris 10 and having all latest patches installed is a must (see http://developers.sun.com/sunstudio/downloads/patches/ss8_patches.html for list of patches available).
    If your final goal is to upgrade both OS and compiler, then switching to Solaris 10 and staying with Sun Studio 8 is a good idea; this way you minimize differences. After dealing with OS differences, you will be able to upgrade to Studio 12 update 1 (most recent release) more smoothly. Latest Sun Studio release is preferable because
    - its compiler better conform to the standard,
    - they generate better code,
    - whole suite works better on Solaris 10 since it was developed and tested on Solaris 10,
    - IDE is a huge improvement compared to Sun Studio 8.
    However, if you choose to stay with Sun Studio 8 (remember, end of support life is just one year away), I'd recommend purchasing support contract so that if you happen to run into a problem, it is solved with Sun Studio 8 patch, not in the next Sun Studio release (13?), which will be unacceptable for you.

  • Can't use profiler (Performance Analyzer) in Sun Studio 12, please help!!

    Hi,
    I've mandriva 2008 (linux), and I've installed Sun Studio 12.
    At the first start of Sun Studio a message appear:
    Warning - could not install some modules:
         ATD Sun Studio Core - The module named com.sun.tools.swdev.toolscommon was needed and not found.
         dbx Debugger UI - The module named com.sun.tools.swdev.toolscommon was needed and not found.
         ATD Performance Analyzer Actions - The module named com.sun.forte.st.mpmt/1 was needed and not found.
         ATD Performance Analyzer Actions - The module named com.sun.tools.swdev.toolscommon was needed and not found.
    All other modules works correctly, but unfortunately I need the profiler (performance analyzer) because I want to speed up my C++ code. What can I do???
    Please help!
    NOTE:
    I've added to my .bash_profile this lines:
    PATH=/opt/sun/sunstudio12/bin:$PATH
    export PATH
    PATH=/opt/sun/sunstudio12/man/:$PATH
    export PATH
    LD_LIBRARY_PATH=/opt/sun/sunstudio12/prod/lib
    export LD_LIBRARY_PATH
    but unfortunately this don't solve the problem....
    Edited by: MLX82 on Feb 1, 2008 11:24 PM

    If I type `uname -p` this message appear:
    [mlx@localhost ~]$ `uname -p`
    bash: Intel(R): command not foundIf I type: --userdir won't work as you can see:
    sunstudio --userdir /home/mlx/.sunstudio/12.0-Linux-Intel\(R\)\ Pentium\(R\)\ M\ processor\ 1.73GHz/I get an 426 line error (but this is the correct location, as man of sunstudio say), while if I type for example:
    sunstudio --userdir /home/mlx/error 426 disappears, but I get anyway the error on the module:
    Warning - could not install some modules:
         ATD Performance Analyzer Actions - The module named com.sun.forte.st.mpmt/1 was needed and not found.
         ATD Performance Analyzer Actions - The module named com.sun.tools.swdev.toolscommon was needed and not found.
         dbx Debugger UI - The module named com.sun.tools.swdev.toolscommon was needed and not found.
         ATD Sun Studio Core - The module named com.sun.tools.swdev.toolscommon was needed and not found.On the other hand I've searched the "id" exe and it is in /bin:
    [mlx@localhost ~]$ id
    uid=500(mlx) gid=500(mlx) gruppi=500(mlx)so I've created a sym link:
    cd /usr/bin
    ln -s /bin/id ./idbut when I start Sun Studio 12 I get again the error on the module.
    So I've tryed to reinstall everything (yes, also OS) but it (partially) solves only the problem installing with batch_installer. Infact now I can use batch_installer but at the end of installation it say:
    [root@localhost tmp]# ./batch_installer --accept-sla
    Installation failed: cleanup successful.Anyway SunStudio 12 still works, but the main problem about the module of performance analyzer is still here...
    how can I solve this? Please help!
    Edited by: MLX82 on Feb 4, 2008 3:19 PM

  • Exceptions not caught in shared library when compiled under Sun Studio 9

    I realize it's a fairly old version of Sun Studio, however if at all possibly we'd like to avoid updating to the latest.
    Sun Studio 9, version reports
    version of "/opt/SUNWspro/bin/../prod/bin/../../bin/cc": Sun C 5.6 2004/07/15
    version of "/opt/SUNWspro/bin/../prod/bin/../../bin/CC": Sun C++ 5.6 2004/07/15
    uname -a
    SunOS sunblade 5.9 Generic_118558-27 sun4u sparc SUNW,Sun-Blade-100
    The problem is within our shared library a function calls another method within a try/catch block. This method then sometimes throws an exception which does have a matching catch block. On all other systems (Windows, AIX, HP-UX, Linux) the code works, the exception is caught and handled. On Solaris with Sun Studio 9 though, the exception is ignored and instead triggers an abort and core dump.
    Stack Trace:
    ffffffff7daa871c lwpkill (6, 0, ffffffff7fffd9c0, ffffffff7d3064d4, 2, ffffffff7fffd9ec) + 8
    ffffffff7da3e4b8 abort (ffffffff7d40dac8, ffffffff7d40cc38, ffffffff7d411e78, 10604c, 2, ffffffff7d40dac8) + 100
    ffffffff7d3064d4 __1cH__CimplRdefault_terminate6F_v_ (ffffffff7d40dac8, ffffffff7d40cc38, ffffffff7d411e78, 10604c, 104e40, ffffffff7d3064d0) + 4
    ffffffff7d3062b4 __1cH__CimplMex_terminate6F_v_ (ffffffff7d40de40, 0, 0, ffffffff7d40de40, ffffffff7d40c978, 1) + 24
    ffffffff7d306f04 exthrow_body (ffffffff7d40de40, 0, 0, 105af4, 52, ffffffff7d40e2e8) + 84
    ffffffff7d306e58 __1cG__CrunIex_throw6Fpvpkn0AQstatic_type_info_pF1_v_v_ (ffffffff7d40dec8, ffffffff7f0dea78, ffffffff7ecb6b28, ffffffff7d40de40, 0, ffffffff7d40de40) + 3c
    ffffffff7ecb6d90 __1cLIGExceptionFThrow6FnQenumIGErrorCodes_pkcxxp2x_v_ (fffffffffffff3e3, 0, 0, 0, ffffffff7f1187da, a0) + 80
    ffffffff7ecb6e78 __1cOThrowException6FnQenumIGErrorCodes_pkcxxp1x_v_ (fffffffffffff3e3, 0, 0, 0, ffffffff7f1187da, a0) + 30
    ffffffff7f083304 __1cSIGRasterProcessingNVerifyPalette6FpnMIGRasterPage_nTenumIGContrastModes__v_ (1001f3c10, 0, 0, 0, 0, 0) + b4
    ffffffff7f083760 __1cSIGRasterProcessingOInvertContrast6FpnMIGRasterPage_nTenumIGContrastModes_nTenumIGColorChannels_pnPtagAT_RECTANGLE__v_ (1001f3c10, 0, 0, ffffffff7fffe1a8, 0, 0) + 20
    ffffffff7f039a2c iIG_IP_contrast_invert (1001f3c10, 100162b10, 0, 0, 0, 0) + 104
    ffffffff7f039ba0 iIG_IP_contrast_invert_masked (1001f3c10, 100162b10, 0, 0, 0, 0) + 80
    000000010000b4e0 ipcontrast_invert_notify (10014d000, 10014d, 0, 100000, 100162000, 100162) + 48
    Try/catch block:
         try
              <Triggering function>
         catch(const IGException& ige)
              <Handling Code>
    The code which throws the exception is a static method of IGException which has a basic throw line:
         throw IGException(...);
    Source code is compiled with the following flags, none of which I could find any info to suggest affect this:
    CC -c -Xt -xCC -misalign -xarch=v9 -O
    Linking of the shared object is then done via the following, again nothing obvious that could cause issues. mapfile is an empty file.
    ld -o <outputfilename> -G -z textoff -M mapfile -z noversion -64 -h <outputfilename> <object files> -L/opt/SUNWspro/lib/v9 -lCrun -lX11 -lc -lm
    I did read somewhere mentioning to make sure to use RTLD_GLOBAL if using dlopen on the .so, but the test app is using ld to link the library.
    Does anyone have any ideas why with the Sun Studio 9 compiler these exceptions are not being caught? Based on the fact they are caught on all other compilers, i'm guessing this issue is with the compiler.
    Also, as a test it seems that if the shared object is not built as a 64-bit object, then everything works. The issue only seems to occur when it is a 64-bit object. Likely an issue with the 64-bit compiling?
    Edited by: 837682 on Feb 17, 2011 9:23 AM

    As the other poster pointed out, you need to link the shared library using CC, not ld. I should have noticed that error in the original post.
    Try using CC instead of ld in your link command. The CC command causes additional files to be linked into the shared library that are required for proper operation, and particularly for exception handling. I think that is the actual source of your problem.
    You should not use -L options that point into the compiler installation area, and when you use CC to link, you don't need to.
    I'm surprised that you seem to have a copy of libCrun.so.1 in the compiler installation area -- that should not be the case. The the only versions of libCrun should be static libraries libCrun.a. You almost never want to link with a static version of a system library, and absolutely never when building a shared library. The file /opt/SUNWspro/lib/libCrun.so.1 ought to be a symbolic link pointing to /usr/lib/libCrun.so.1, but if that were the case, the version command would have the same output.
    By any chance, did you install your compiler by copying it from another installation? If you do that, you need to use tar, not cp, to ensure that symbolic links are preserved.

  • Sun Studio 12 startup exception

    Hi,
    Below was the exception I got when I started Sun Studio, it was running fine until I installed glib from pkgutil and it was still running fine when I was in the IDE. The error only happened after I quit Sun Studio and go back in. Any idea?
    java.lang.NullPointerException
    at org.netbeans.core.windows.persistence.TCRefParser$PropertyHandler.startElement(TCRefParser.java:250)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:533)
    at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.startElement(XMLDTDValidator.java:798)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:878)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$ContentDispatcher.scanRootElementHook(XMLDocumentScannerImpl.java:1157)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1794)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242)
    at org.netbeans.core.windows.persistence.TCRefParser$PropertyHandler.readData(TCRefParser.java:220)
    at org.netbeans.core.windows.persistence.TCRefParser.load(TCRefParser.java:79)
    at org.netbeans.core.windows.persistence.ModeParser.readTCRefs(ModeParser.java:293)
    at org.netbeans.core.windows.persistence.ModeParser.load(ModeParser.java:120)
    at org.netbeans.core.windows.persistence.WindowManagerParser.readModes(WindowManagerParser.java:408)
    at org.netbeans.core.windows.persistence.WindowManagerParser.load(WindowManagerParser.java:87)
    at org.netbeans.core.windows.persistence.PersistenceManager.loadWindowSystem(PersistenceManager.java:1015)
    at org.netbeans.core.windows.PersistenceHandler.load(PersistenceHandler.java:83)
    at org.netbeans.core.windows.WindowSystemImpl.load(WindowSystemImpl.java:45)
    [catch] at org.netbeans.core.NonGui$3.run(NonGui.java:224)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

    Are you saying that "sunstudio" does not run anymore on this system?
    Can you try to start it with empty userdir?
    % rm -rf /tmp/newdir
    % sunstudio --userdir  /tmp/newdir
    BTW, what OS do you use? I guess it is Linux, correct?
    Thanks,
    Nik

  • Pl/sql exception not caught.

    This program should give me an error "table or view does not exist" caught by the pl/sql exception, as dba_data_file1 table does not exist.
    However all that it returns is Input truncated to 3 characters
    Q1. Why?
    Q2. How can I remove this message "Input truncated to 3 characters. Where is this message comming from?
    #!/bin/ksh
    sqlplus -s << EOF
    abc/[email protected]
    set pages 0
    SET SERVEROUTPUT ON BUFFER 100000000
    BEGIN
    dbms_output.ENABLE(1000000);
    SELECT
    round(sum(bytes)/1024/1024/1024),
    round(sum(free_bytes)/1024/1024/1024),
    TRUNC(SYSDATE)
    from
    (SELECT tablespace_name, BYTES, 0 FREE_BYTES FROM dba_data_files1
    UNION ALL
    SELECT tablespace_name, 0, BYTES FROM dba_free_space
    union all
    SELECT tablespace_name, BYTES, 0 FROM dba_temp_files
    union all
    SELECT 'REDO-LOGS', b.BYTES, 0
    FROM v\\$logfile a, v\\$log b
         WHERE
    a.GROUP# = b.GROUP#);
         dbms_output.put_line("ok ");
    EXCEPTION
    WHEN OTHERS THEN
    dbms_output.put_line("Error "||SQLERRCODE ||":"|| SQLERRM);
    exit 1
    END;
    exit 0
    EOF
    $> tstrun.ksh
    Input truncated to 3 characters

    EXCEPTION
    WHEN OTHERS THEN
    dbms_output.put_line("Error "||SQLERRCODE ||":"|| SQLERRM);
    exit 1
    END;
    if you catch exception, process it then you must reraise it. its a general mistake found when you are using others instead of name exception, so remember whenever you use others you must reraise the exception

  • Sun Studio 11 do not parse make output and create link to file?

    Hi,
    Running Sun Studio 11 and can only get file links in the output window when I run a make command that uses CC -g (debug option). We have integrated other tools into our make system (flexlint, cppUnit..) and even though we make sure that the syntax is exactly the same as the compiler output and matches regular expression under tools->options->building->make settings->error expression, it doesn't work. Why do you have to debug compile to get sun studio to create a file link in the output window? Doesn't sun studio just parse the text from the make command?
    example of flexlint output for which no link is created:
    "/vobs/project/oss/fm/fm4/fm-fmalib/fmbal/fmaaulib/src/FMA_List.cc", line 440: Error 84: sizeof object is zero or object is undefined'�
    example of make debug output for which we do get a link:
    "/vobs/project/oss/fm/fm4/fm-fmalib/fmbal/SunOS5.10/inc/FMA_alarm_record.hh", line 1310: Warning (Anachronism):Info "static" is not allowed and is being ignored.
    Regards,
    Ola

    I'd second Maxim's suggestion: try NetBeans 5.5 with C/C++ Development Pack. The official release of NetBeans C/C++ Development Pack 5.5 has happened a few days ago. You can download it from
    http://www.netbeans.info/downloads/all.php?b_id=2284
    Some of the changes between the beta3 build and FCS are:
    * Significant performance improvements in the code parser resulting in faster results in the Class View and Code Completion
    * Programs now run in an external terminal (system dependent) by default. This allows better input control
    * Significant performance improvement in the debugging module
    * Significant functionality improvement in the debugging module
    * New project type "C/C++ Project From Existing Code" which simplifies creating a project from existing code
    * Macro support in code completion
    * Hyperlink navigation for macro usages and #include directives
    * Reformat code
    * Code folding
    * Code completion
    All these features will appear in next Sun Studio release, so you can
    consider NetBeans C/C++ Development Pack 5.5 as a preview of new
    Sun Studio IDE.

  • An exception that could not be caught occurred.

    While creating shopping cart at the very first step I am getting following error message.
    Error when processing your request
    Note
    The following error text was processed in the system: An exception that could not be caught occurred.
    The error occurred on the application server and in the work process 1.
    The termination type was: RABAX_STATE
    The ABAP call stack was:
    Function: BBP_PD_ABORT of program SAPLBBP_PDH
    Form: ABORT of program SAPLBBP_PDORG
    Form: CHECK_PROC_ORG_AND_GROUP of program SAPLBBP_PDORG
    Form: ORG_CHECK_SINGLE of program SAPLBBP_PDORG
    Form: ORG_MAINTAIN_SINGLE of program SAPLBBP_PDORG
    Function: BBP_PDORG_CREATE of program SAPLBBP_PDORG
    Form: ITEM_F_CREATE_FROM_WTAB of program SAPLBBP_PDIAD
    Form: ITEMLIST_F_UPDATE of program SAPLBBP_PDIAD
    Function: BBP_ITEMLIST_UPDATE of program SAPLBBP_PDIAD
    Form: PROCDOC_UPDATE of program SAPLBBP_PD
    What can I do?
    If the termination type was RABAX_STATE, then you can find more information on the cause of the termination in the system DSR in transaction ST22.
    If the termination type was ABORT_MESSAGE_STATE, then you can find more information on the cause of the termination on the application server in transaction SM21.
    If the termination type was ERROR_MESSAGE_STATE, then you can search for more information in the trace file for the work process 1 in transaction ST11 on the application server. In some situations, you may also need to analyze the trace files of other work processes.
    If you do not yet have a user ID, contact your system administrator.
    Error code: ICF-IE-http-c -l:E-s: -i: -w:1-d:20080606-t:104953-v: RABAX_STATE-e: UNCAUGHT_EXCEPTION
    HTTP 500 - Internal Server Error
    Your SAP Internet Communication Framework Team
    I have checked In ST22 (ABAP Dump Analysis) it says,
    Runtime Errors         UNCAUGHT_EXCEPTION
    Exceptn                    CX_BBP_PD_ABORT
    ShrtText
        An exception that could not be caught occurred.
      The exception 'CX_BBP_PD_ABORT' was raised but was not caught at any stage in the call hierarchy.
      Since exceptions represent error situations, and since the system could not react adequately to this error, the current program, 'SAPLBBP_PDH', had to be terminated.
    I also checked the note no. 673372
    SAP Note     673372              Version  9     
    Implementation Status           Cannot be implemented          
    Processing Status   New        Processor                  
    As per the note I checked BBP_CND_CUSTOMIZING_CHECK, it through an error of IPC not running, As if this is a classic scenario I guess IPC is not used. 
    Please guide me to solve this issue.
    Regards,
    Vivek B.

    Hi Vivek,
    Having a look a would say that the problem is in the determination of  purchasing organization. I would advice to review the attributes in PPOMA, mainly the responsability of the organizational unit that you has defined as purchasing group and purchasing unit.
    I hope this help
    BR

  • Exception when starting sun studio

    when am starting sun studio, it is giving an error message (exception)-java.lang.out of memory error : java heap space.
    i cant able to start sun studio. What will do...?
    Thanks in advance
    vinod

    Check current limits by issuing; this output is from my Ubuntu machine:
    $ ulimit -a
    core file size (blocks, -c) 0
    data seg size           (kbytes, -d) unlimited
    scheduling priority (-e) 0
    file size (blocks, -f) unlimited
    pending signals (-i) 16379
    max locked memory (kbytes, -l) 32
    max memory size         (kbytes, -m) unlimited
    open files (-n) 1024
    pipe size (512 bytes, -p) 8
    POSIX message queues (bytes, -q) 819200
    real-time priority (-r) 0
    stack size              (kbytes, -s) 8192
    cpu time (seconds, -t) unlimited
    max user processes (-u) 16379
    virtual memory          (kbytes, -v) unlimited
    file locks (-x) unlimited
    I marked settings that would probably need closer attention. Easies way to troubleshoot the problem is to set everything to unlimited and see if it helps.
    Also, check if you have enough swap - Sun Studio needs at least one gig of swap and 512 RAM (see http://docs.sun.com/source/820-2973/release_notesML.html#SystemReqs).

  • Resteasy in-built exceptions not caught in the exception mapper

    Hi friends,
    I have written some exception mappers to catch and handle the in-built rest easy exceptions like NotFoundException,MethodNotAllowedException, etc., Sample code as shown:
    @Provider
    public class NotFoundExceptionMapper implements ExceptionMapper<org.jboss.resteasy.spi.NotFoundExc eption>
    @Override
    Response toResponse(org.jboss.resteasy.spi.NotFoundExceptio n exception) {
    return Response.status(500).build();
    I have also written a try catch block in my web filter class. Whenever a NotFoundException occurs, it is not caught in the mapper, but it goes to the catch block in the Filter.
    Whereas I have tried another exception mapper class to handle JsonParsingException. This is working correctly and giving a proper response from the mapper whenever a Json Parse exception occurs.
    The issue is only with the case of resteasy inbuilt exceptions.
    Also, the Provider has been registered in the application context using the include-filter tag inside component scan.
    Is there any additional configuration to be done for this?
    Please guide me as to what needs to be done to catch rest easy in-built exceptions in the mapper class itself.
    Regards,
    RM

    Cross posted
    http://stackoverflow.com/questions/10251640/resteasy-in-built-exceptions-not-caught-in-the-exception-mapper
    http://www.java-forums.org/advanced-java/58655-resteasy-built-exceptions-not-caught-exception-mapper.html
    db

  • Database adapter exception not caught

    Hello,
    I am testing a BPEL orchestration that was running overnight. This process was handling a lot of database transactions that would take quite some time to run. Sometime during the run the database adapter could not connect and an exception was thrown causing the instance to go into an open.faulted state. In the BPEL orchestration I have a Catch-All at the global scope to handle all uncaught exceptions, but apparently this one exception did not get caught. I have had database exceptions thrown and caught previously in other runs, but I am concerned why this one was not handled. Can anyone provide some insight on why this happened and how this can be prevented. I am using 10.1.3.4
    Thanks,
    Jim

    What was the fault. Have you any faults / configuration defined in the BPEL fault framework?
    cheers
    James

  • Exception not caught bug?

    Hi
    I get the following results from running the code below
    CC: Sun C++ 5.9 Linux_i386 Build35_2 2006/12/04
    Hello
    argh
    c++ (GCC) 3.4.6
    Hello
    Caught it
    No problem
    Systems I tested it on
    Whitebox WBRL4 ( Redhat RHEL 4 clone )
    Gentoo x86_64
    #include <iostream>
    #include <stdexcept>
    using namespace std;
    class ex
            void    test()
                    throw runtime_error( "argh" );
    public:
            ex()
                    try
                            test();
                    catch( exception & exc )
                            cout << "Caught it" << endl;
    int main()
            try
                    throw runtime_error( "Hello" );
                    cout << "No error?" << endl;
            catch( exception & ex )
                    cout << ex.what() << endl;
            try
                    ex      test;
                    cout << "No problem" << endl;
            catch( exception & exc )
                    cout << exc.what() << endl;
            return 0;
    };

    You have found a known bug in the release you are using. The bug has been fixed in the EA (early access) release.

  • An exception event is caught by the trace command, but not by java command

    I am having a strange exception in the output of the trace command. The exception is only happening if I instantiate a new object in test class (I have included the code below).
    This is the exception is the output of trace:
    ThreadName: ====== main ======
    methodEntryEvent: main -- simplestTest location:simplestTest:13
    | Exception event found: instance of java.lang.ClassNotFoundException(id=39) catch: java.lang.ClassLoader:303 exception details: class com.sun.tools.jdi.ObjectReferenceImpl
    | Exception event found: instance of java.lang.ClassNotFoundException(id=40) catch: java.lang.ClassLoader:303 exception details: class com.sun.tools.jdi.ObjectReferenceImpl
    | Exception event found: instance of java.lang.ClassNotFoundException(id=40) catch: java.lang.ClassLoader:303 exception details: class com.sun.tools.jdi.ObjectReferenceImpl
    | methodEntryEvent: <init> -- Tutti location:Tutti:22
    | | methodExitEvent: <init> -- Tutti
    | methodEntryEvent: <init> -- Tutti location:Tutti:22
    | | methodExitEvent: <init> -- Tutti
    | methodExitEvent: main -- simplestTest
    Death of ThreadName:====== main end ======
    -- The application exited --
    This is the very simple test class:
    public class simplestTest {
        public static void main(String[] args) {
            int x = 10;
            System.out.println("hello test");
            Tutti tuttike;
            tuttike = new Tutti();
            Tutti tuttike2;
            tuttike2 = new Tutti();
    class Tutti {   
    }If I do not have any instantiations, I do not have the exception in the trace output. Also, if I run the above test application normally (with the java command), I do not have these exceptions.
    Anybody have an idea?

    Indeed, in jdb I do not get these exceptions. I was also about to say that running the trace tool from the command line (not from within Netbeans as before) yielded a slightly more detailed result:
    -- VM Started --
    ThreadName: ====== main ======
    methodEntryEvent: main  --  simplestTest location:simplestTest:13
    | Exception event found: instance of java.lang.ClassNotFoundException(id=39) cat
    ch: java.lang.ClassLoader.loadClass(java.lang.String, boolean)+39 exception deta
    ils: class com.sun.tools.jdi.ObjectReferenceImpl
    | Exception event found: instance of java.lang.ClassNotFoundException(id=40) cat
    ch: java.lang.ClassLoader.loadClass(java.lang.String, boolean)+39 exception deta
    ils: class com.sun.tools.jdi.ObjectReferenceImpl
    | Exception event found: instance of java.lang.ClassNotFoundException(id=40) cat
    ch: java.lang.ClassLoader.loadClass(java.lang.String, boolean)+39 exception deta
    ils: class com.sun.tools.jdi.ObjectReferenceImpl
    | methodEntryEvent: <init>  --  Tutti location:Tutti:22
    | | methodExitEvent: <init>  --  Tutti
    | methodEntryEvent: <init>  --  Tutti location:Tutti:22
    | | methodExitEvent: <init>  --  Tutti
    | methodExitEvent: main  --  simplestTest
    Death of ThreadName:====== main end ======
    -- The application exited --But I now understand this is completely normal behavior. What a strange way to signal class loading... In my own, much more elaborate debugging application, I have now signaled through JDI not to report these exceptions anymore.
    A question, is there a reason for this behavior?

  • An exception that could not be caught occurred -- SYSFAIL in QUEUE

    hi.
    my server shutdown for electricity problems. when i was traying to reactive queues one of then was SYSFAIL.
    the details of SYSFAIL was:  An exception that could not be caught occurred.
    i cant reactive this queue??
    any suggestion??
    thanks ans regards

    Hi,
    When you go to Queue transcation SMQ1 or SMQ2 for that particular messgae please look into the description of the error message double click on the item and you will get more info. Please post that, it might say something like a Function module does not exist or something like that.
    Do check and let us know.
    Also check in SMICM-->Services check if HTTP port are fine.
    Thanks,
    Prakash

  • Sun studio not working in linux

    I installed sun studio 12 in suse 10 linux, and i created a simple pgm,
    when compiling it, it shows these below errors,
    Running "/root/Desktop/sunstudio12/bin/dmake -f Makefile CONF=Debug" in /root/SunStudioProjects/Add
    dmake: defaulting to parallel mode.
    See the man page dmake(1) for more information on setting up the .dmakerc file.
    linux-n3wz --> 1 job
    /root/Desktop/sunstudio12/bin/dmake -f nbproject/Makefile-Debug.mk SUBPROJECTS= .build-conf
    linux-n3wz --> 1 job
    mkdir -p build/Debug/Sun12-Linux-x86
    cc -c -g -o build/Debug/Sun12-Linux-x86/newmain.o newmain.c
    linux-n3wz --> Job output
    mkdir -p build/Debug/Sun12-Linux-x86
    cc -c -g -o build/Debug/Sun12-Linux-x86/newmain.o newmain.c
    (/root/SunStudioProjects/Add)newmain.c:
    "/root/Desktop/sunstudio12/prod/include/cc/stdio.h", line 5: cannot find include file: <stdio.h>
    "/root/Desktop/sunstudio12/prod/include/cc/stdlib.h", line 6: cannot find include file: <stdlib.h>
    "newmain.c", line 17: warning: implicit function declaration: scanf
    "newmain.c", line 19: warning: implicit function declaration: printf
    "newmain.c", line 20: undefined symbol: EXIT_SUCCESS
    cc: acomp failed for newmain.c
    *** Error code 2
    dmake: Fatal error: Command failed for target `build/Debug/Sun12-Linux-x86/newmain.o'
    Current working directory /root/SunStudioProjects/Add
    *** Error code 1
    dmake: Fatal error: Command failed for target `.build-impl'
    Build failed. Exit value 1.
    CAN any body tell me whats the exact problem?
    this same pgm is currectly running in sunstudio 12 installed in solaris.

    satmatrix wrote:
    ok, shall i install ubuntu in my laptop?No, I'm just saying that I'm not familiar with SuSe enough to tell what package you need to install to have standard includes. But you already have an answer now...
    Solaris 10 is not installable in my laptop, it doesnt support graphics, also i had tried opensolaris, it works without errors and it supports graphics,
    but can i install Sun Studio 12 in that?Of course. You can do it using OpenSolaris package manager; no need to download, unpack, install - package manager will do it for you.

Maybe you are looking for