Seeking runtime mutex analysis tool

I am using Sun C++ 5.5 on Solaris 8, on an Ultra 10.
Does there exist a "known reliable" tool for tracking (logging, analyzing, reporting) a Solaris application's RUN TIME operationis on Solaris mutexes?
I've written such a tool, myself, but if I am to believe its current reports there are serious flaws in the Solaris mutex mechanism on Solaris 8. I conclude, instead, that my tool is broken and that I should try to find an equivalent tool that actually WORKS.
So, I would appreciate either pointers to such (a) tool(s) -- OR confirmation that there are, indeed, serious flaws in the Solaris mutex mechanism on Solaris 8 and that my homebrewed tool is truthful... ;-)
Thanks in advance,
Chris

Yes, I use the -mt option on all builds -- actually I use an "in-house standard" Makefile that sets this for me, every time.
It is not clear what luck I will have with the thread-library patches -- I am not in a position to use them myself, but must talk a separate sysadmin department into handling it for me -- but thank you, nonetheless, for the suggestion. It's also possible that the patches in question are already installed; only "they" will know.
I will also definitely try the "optional new thread library." Had not heard about that one. Is there something, somewhere, that I can read that will tell me what differences in behavior I might expect to see?
Details of my observations are ... difficult... to convey, due to sheer volume; I'll do my best to summarize here, but I apologize for the length of what follows.
First, truss of a small "test app," running for about 20 minutes (super-slow due to truss itself; equivalent to about two minutes at "normal" speed) produces over 1.5 million lines (62 Mbytes) of output. Heavy postprocessing to select just the operations associated with a single mutex produces a 47Kb file, most of which is inoccuous (sp?). Here and there, however, I observe sequences along the lines of the following (the parenthesized numbers are mine, for the sake of reference; the rest is pretty much exactly what truss puts out):
(1)   /4 -> mutex_lock(0xc68cb, ... (other args here)...)
(2)   /4 <- mutex_lock(0xc68cb, ... (other args here)...) = 0
(3)   /5 -> mutex_lock(0xc68cb, ... (other args here)...)
(4)   /5 <- mutex_lock(0xc68cb, ... (other args here)...) = 0
(5)   /5 -> mutex_unlock(0xc68cb, ... (other args here)...)
(6)   /5 <- mutex_unlock(0xc68cb, ... (other args here)...) = 0
      .  (repeat thread-5 lock-unlock pairs, numerous times, here)
(7)   /4 -> mutex_unlock(0xc68cb, ... (other args here)...)
(8)   /4 <- mutex_unlock(0xc68cb, ... (other args here)...) = 0Taking this at face value, my interpretation is as follows:
- at line 1, thread 4 requests a lock on the mutex.
- at line 2, thread 4 is granted the requested lock on the mutex
- at line 3, thread 5 requests a lock on the mutex. I would expect this request to block, due to thread 4's existing lock, such that we would not see the completion of this request until after an unlock performed by thread 4. However...
- at line 4, thread 5 is granted a lock on the mutex! If truss is telling us the bald-faced truth about the sequence of operations here, this lock should not have been granted, because thread 4 already held a lock on this mutex!
- in lines 5 and 6, we see thread 5 unlocking the mutex (which it "should never have been able to lock in the first place");
- between lines 6 and 7, but omitted here for the sake of brevity, I see ten or twenty duplicates of the sequence of operations in lines 3 through 6, namely, thread 5 locking-and-unlocking the mutex, entirely successfully (return value of 0) and without blocking (no other threads doing anything in between thread 5's activities)
- finally, in lines 7 and 8,, we see thread 4 unlocking the mutex that it locked at line(s) 1 (and 2).
The only explanations I can come up with, for the observed sequence -- which is seen in several other places in the log file, for this and several other mutexes, and on every run of the test program -- are these:
1) truss is 100% truthful and accurate in its reporting of mutex operations, in particular with regard to their exact sequencing, and the mutex facility does, in fact, occasionally allow thread 5 to lock a mutex already locked by thread 4. (I know for a fact that the facility allows e.g. thread 5 to unlock a mutex held by thread 4; there's another post somewhere in this forum about this being done deliberately in a piece of questionable code. I consider it somewhat of a flaw that the mutex facility allows this at all, but other people here argue that there "may be compelling reasons" (i.e. deep in the theoretical department at Sun) for "things being the way they are" in this respect. Anybody know for sure?)
2) Multi-threading being what it is -- a complex, subtle, and oft-unwieldy beast -- truss "gets confused" in some subtle way, and ends up reporting events in a slightly different sequence than they actually occurred. In the particular case outlined here, for example, perhaps thread 4 did unlock the mutex "right after it locked it," but truss, for whatever reasons, didn't report it right away -- namely, not until after thread 5 had perfectly "legally" locked-and-unlocked the mutex a few times. (Alas, it's not clear why truss would get around to reporting thread 5's activities, before getting around to reporting thread 4's activities previously completed. It almost seems to require large amounts of latency on all threads, interacting in a complex manner. I can just manage to leave mental "elbow room" for this, because I don't know exactly how truss works.. It's harder, though, to shrug off the essentially-identical results produced by code of my own, whose inner workings I do know, and which I would have trusted implicitly if it hadn't started delivering reports like these in the first place.
So, folks, the burning question is, which, if either, of these two conclusions can we confirm? If it's the former, we have serious problems, but should face them squarely and fix them. If it's the latter, I would desperately love to hear it -- with believable supporting details -- from Someone Who Really Knows, so that I can simply shrug off the disturbing "evidence" and write off the whole issue of realtime mutex-tracing as "one of those things that can never quite be nailed down."
Thanks for listening.

Similar Messages

  • SE30 - Runtime Analysis Tool

    hi,
    What is the use of SE30 - Runtime Analysis Tool?
    thnks.

    HI,
    This runtime analysis tools allows the ABAP/4 programmer to trace the tables used by the SAP dialog/reports programs.  In the Analyze button, you can see four more buttons like:-
    Hit List
    Displays the execution time of each statement in the program.
    Tables
    Displays the tables accessed during run time.
    Group hit list
    Displays the execution time of all the statements and grouping them based on the type of command.  e.g. performs, SQL and internal tables used.
    Hirarchy
    Displays the execution time of each statement in the actual order in which were executed.  Uses indentation to indicate the level of nesting of statements within subroutines.
    Any tables use by the transaction or program can be easily trace with the runtime analysis tools.
    Go to transaction SE30
    Type in the transaction code you want to analyze
    4.6x
    In the Restriction section: select the TMP -> Temporary variant
    Click the Change button
    Click the Duratn/type
    Select None for Aggregation
    Save the variant and execute again
    After finishing the process, click back to SE30
    Use F3 to move back to the initial screen of SE30
    Click the Analyze Button
    Click Goto -> Object-centered hit list -> Database tables
    3.0x
    Click Execute
    After finishing the process, click back to SE30
    Click the Analyze Button
    Click the Table Button
    After retrieving the table names, you can check the raw data with transaction SE16 - Data Browser or SE11 - Dictionary.
    For example, if you want to display the data for MSEG  - Material Document table
    Transaction SE16
    Type in MSEG for Table name and click execute.
    Data Browser will display the default selection for you to display data.  If you did not change the default and click execute the data browser will display the first 500 records.
    Click Settings to change the List formats, User parameters and Fields for selection.
    In 4.6x, you can use SE16N.
    Transaction SE11 or SE12 (4.6x)
    Type in MSEG for Object name and click the Display button.
    Click Utilities -> Table contents for the default selection screen.  If you did not change the default and click execute, the Dictionary will display the first 500 record.
    Click Settings to change the List formats, User parameters and Fields for selection.
    Transaction SE17
    Type in the Table Name, put in the Selection value,  put a 'X' in the Output column to display the data field and put in the Sort number from 01..99 (if you want to sort).
    Cheers,
    Chandra Sekhar.

  • What is  RunTime Analysis Tool

    shankar

    Please   go this   below Explaination .
    <b>SE30 - Runtime Analysis Tool</b>
    This runtime analysis tools allows the ABAP/4 programmer to trace the tables used by the SAP dialog/reports programs.  In the Analyze button, you can see four more buttons like:-
    Hit List
    Displays the execution time of each statement in the program.
    Tables
    Displays the tables accessed during run time.
    Group hit list
    Displays the execution time of all the statements and grouping them based on the type of command.  e.g. performs, SQL and internal tables used.
    Hirarchy
    Displays the execution time of each statement in the actual order in which were executed.  Uses indentation to indicate the level of nesting of statements within subroutines.
    Any tables use by the transaction or program can be easily trace with the runtime analysis tools.
    <b>Go to transaction SE30</b>
    Type in the transaction code you want to analyze
    <b>4.6x</b>
    In the Restriction section: select the TMP -> Temporary variant
    Click the Change button
    Click the Duratn/type
    Select None for Aggregation
    Save the variant and execute again
    After finishing the process, click back to SE30
    Use F3 to move back to the initial screen of SE30
    Click the Analyze Button
    Click Goto -> Object-centered hit list -> Database tables
    <b>3.0x</b>
    Click Execute
    After finishing the process, click back to SE30
    Click the Analyze Button
    Click the Table Button
    After retrieving the table names, you can check the raw data with transaction SE16 - Data Browser or SE11 - Dictionary.
    For example, if you want to display the data for MSEG  - Material Document table
    Transaction SE16
    Type in MSEG for Table name and click execute.
    Data Browser will display the default selection for you to display data.  If you did not change the default and click execute the data browser will display the first 500 records.
    Click Settings to change the List formats, User parameters and Fields for selection.
    In 4.6x, you can use SE16N.
    Transaction SE11 or SE12 (4.6x)
    Type in MSEG for Object name and click the Display button.
    Click Utilities -> Table contents for the default selection screen.  If you did not change the default and click execute, the Dictionary will display the first 500 record.
    Click Settings to change the List formats, User parameters and Fields for selection.
    Transaction SE17
    Type in the Table Name, put in the Selection value,  put a 'X' in the Output column to display the data field and put in the Sort number from 01..99 (if you want to sort).
    <b>if the  above is not clear  go through this link</b>
    <a href="http://www.sap-basis-abap.com/sapta002.htm">http://www.sap-basis-abap.com/sapta002.htm</a>
    Reward  points if it is usefull ..
    Girish

  • CheckThread static analysis tool, @ThreadSafe, @ThreadConfined

    Hello,
    I'm looking for feedback on CheckThread, a free and open source static analysis tool I created.
    By using a @ThreadConfined and @ThreadSafe annotation on methods and classes, this tool can catch certain types of threading bugs at compile time.
    To see examples, check out:
    http://www.checkthread.org/examples.html
    For example, when developing a Java Swing app, a Java developer must ensure that the Swing component is accessed only on the Event-Dispatch Thread after the component is realized. With large applications that are thousands of lines of code, simple thread confinement for Swing can be difficult to enforce and may result in wacky sporadic runtime behavior. CheckThread solves this problem using annotations and a static analysis Ant task - thread confinement problems are caught at compile time. An added benefit is that the threading model of Java code is well documented inline with the code.
    All feedback welcome!
    Thanks,
    Joe

    I recommend you to ask developers of FindBugs to add your feature to their project. FindBugs says that it already supports concurrency bugs finding (see jcip package), but that support is very poor (actually, it's not working). I'll try your program.

  • Tax Analysis Tool | Report | SAP B1 | Localisation India

    I don't know why this thread is not displayed same as I have typed in
    Hi Solution Development Team,
    I guess you are aware of the poor status of legal reports offered by SBO in country india version (I am aware of merging of A,B,C in new version 8.8).
    I fore see if a Tax Analysis tool / Report provided same on the line of Sales Analysis already available at present, then it can be of great help to customer in following ways.
    1. In India the frequency of changes in Legal tax structure is veri high, so even if all the as of date reports are developed then it can change any time.
    2. The proposed solution can be suggested as work around to customers/users.
    The desired tool/report should work as below
    1st Input parameter screen should collect following information from user (you may add more)
    1.a. From Tax Category
    1.b. To Tax Category
    1.c. From Tax Type
    1.d. To Tax Type
    1.e. From Tax code
    1.f. To Tax code
    1.2. Tax combination
    1.3. Select From Date (Posting / Document)
    1.4. Select To Date (Posting / Document)
    1.5. Transaction category (Optional reference A/R Invoice Tax Tab)
    1.6. Check Box ( Multiple choice A/R Invoice , A/P Invoice , A/P and A/R Credit Memo etc Marketing documents same as available in General Ledger report)
    1.7. Radio Button (Summary OR Detailed)
    Once user provides above details then in 2nd screen system should provide following data filterd based on criteria given in 1st screen
    01. BP code and Name (Customer/Supplier)
    02. Document Type
    03 .Document No.
    04. Document Date and Posting Date in separate columns
    05. Item (multiple line for same document only in case of Detailed is selected in 1.7 above)
    06. Tax Category (multiple line for same document only in case of Detailed is selected in 1.7 above)
    07. Tax Type (multiple line for same document only in case of Detailed is selected in 1.7 above)
    08. Tax Combination (multiple line for same document only in case of Detailed is selected in 1.7 above)
    09. Tax Code (multiple line for same document only in case of Detailed is selected in 1.7 above)
    10. Base Amount
    11. Tax Percentage (depend upon the Tax code / Formulla)
    12. Total Tax Amount (as per the choice made in 1.7 above - total document tax in case summary is selected)
    13. Document Total as applicable
    14. Transaction Category
    15. BP Tax Info. Columns (VAT No. / Service Tax No. PAN No. etc all)
    Also bring other columns which you find relavant, user should have option to make visible using form setting
    The chalange I guess in this reporting/analysis is to display tax parameter code wise amount in column format which is stored in row format in system per item line (for reference see details displayed in link of A/R invoice Tax amount column).
    Best Regards,
    Samir Gandhi

    No Body responded very strange !!!!!

  • I have adobe photoshop CS6 and I am trying to use the analysis tools but all of them except for the ruler tool are unavailable. Am I missing certain plug ins?

    I have adobe photoshop CS6 and I am trying to use the analysis tools but all of them except for the ruler tool are unavailable. Am I missing certain plug ins?

    Which operating system?
    If I recall, some features were not fully supported on XP.
    Nancy O.

  • ClassLoader Analysis Tool(CAT) doesn't seem to work with WL10.3

    Hi,
    I have an EJB running on WL10.3. It uses the Apache Commons Pool 1.6 jar to maintain a Pool of the other component sessions. We recently came to know that WL10.3 already has commons-pool.1.3 jar in its default classpath (module directory), so 1.6 jar is not being referenced at all. So we added META-INF\weblogic-application.xml and used the following setting as per the ClassLoader Analysis Tool(CAT) suggestion. We updated the deployment with this and cleared the cache,  restarted, but still the CAT Tool's 'Analyze Conflicts' gives the same suggestion, implying that the changes didn't work. So not sure if this is the problem with the CAT Tool or with the following configuration.
    <?xml version="1.0"?>
    <weblogic-application xmlns="http://www.bea.com/ns/weblogic/90"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
           <application-param>
                <param-name>webapp.encoding.default</param-name>
                <param-value>UTF-8</param-value>
           </application-param>
           <prefer-application-packages>
                <package-name>org.apache.commons.*</package-name>
           </prefer-application-packages>
    </weblogic-application>
    Also, Is there any alternative to verify this change, I checked for commons-pool verbose option, so that we could see more details and track the class files. But I don't see any option available. Can anybody help ?
    Thanks.

    Did you build Elsa with this package from AUR: elsa-svn-arch
    The way your elsa.conf looks like indicates to me that you have not.
    Please use the package because you are also missing pam-files.

  • STATSPACK ANALYSIS TOOL

    hi guys,
    I need to analysis my statspack report of my own. Is there any free tool provided to analyse the report of my own.
    TIA,

    Hi,
    You could take a look at a great set of statspack and AWR analysis tools here http://www.statsviewer.netfirms.com/
    Cheers

  • Speedgrade crashes when showing the analysis tools.

    I can make edits and changes to grades and effects just fine. But as soon as I click the arrow to open the analysis tools, the application crashes. This is extremely frustrating as I need the scopes to do anything in SG.
    I have attempted to lower preview resolution, scopes resolution, GPU acceleration on and off. I have uninstalled twice.
    Machine info:
    Windows 7
    amd fx 8350
    32gb ram
    2x GTX 770s SLI
    Footage stored on internal SSD

    Same here.
    I can work all day in SG no problems. As soon as I click the arrow to bring up the scopes *crash*. This is post cleanup SOP.
    AMD 3820 @ 3.5GHz
    16GB RAM (11GB dedicated to Adobe)
    Asus Nvidia GTX760-DC2 2GB
    Win 8.1 (all updates current today)
    Speedgrade 8.2x51 Native access (no hyperlink from PP)
    GPU Acceleration enabled via CUDA
    No plug-ins for SG or PP
    Error log as follows:
    Problem Event Name:
    APPCRASH
      Application Name:
    SpeedGrade.exe
      Application Version:
    8.2.0.0
      Application Timestamp:
    54887476
      Fault Module Name:
    SpeedGrade.exe
      Fault Module Version:
    8.2.0.0
      Fault Module Timestamp:
    54887476
      Exception Code:
    c0000005
      Exception Offset:
    00000000003ee03f
      OS Version:
    6.3.9600.2.0.0.256.48
      Locale ID:
    1033
      Additional Information 1:
    d236
      Additional Information 2:
    d236bbe002996cedee0dde381fa38db4
      Additional Information 3:
    c93f
      Additional Information 4:
    c93ffbb2a38ecaab8d72a49f5c39cc59

  • Analysing tools for KM documents

    Hello,
    Does anybody know, if there are any analysing tools available, with which you can analyse the access of the KM documents. They should answer questions like
    - when was the last access to a documents?
    - which documents have an average rating lower than x?
    - how often has the documents been accessed?
    The purpose is, to identify documents, which may be obsolete...
    Regards,
    Dominik

    Hi Dominik,
       There is not tool but you can develop it.
    You can develop a filter, each time that you access a document, this statistic information should be saved in a database and then you can report.
    Here you have an example about how to create a report:
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/6b30b090-0201-0010-829d-e988d093ac65
    On the other hand,
    Using taxonomies, you can classify document by rating.
    Also in Content Management->Report->Resource Statistics (
    This report calculates statistic information on the content of KM repositories
    ). I know that this report it is not that you are looking for but ....
    Patricio.

  • Problem with 'restrict data' option in Web Analysis' Analysis Tool

    I feel like i'm in the twilight zone.
    We have made a report in web analysis, withh essbase as a source, and works fine.
    We want to restrict data for customers that generate more than 1,000,000 revenue, for example
    So, we go to Analysis tools, restrict data. The dialog window opens
    We hit 'Select Column...' and nothing happens. No Column is shown, thus being unable to complete the dialog.
    Should we enable something in essbase to allow this? We are newbies, but we think this should be pretty straightforward.
    We have also tried to do that with the Analysis tools administrator, with the same result.
    We are using Web Analysis 9.3.1.
    Any feedback will be appreciated.
    Thank you
    Edited by: hectorsosar on 22/06/2009 02:31 PM

    It got fixed by removing a filter from a dimension, and placing that dimension as a page.
    Thanks,
    Hector

  • What happended to the Solaris Crash Analysis Tool 4.2 for Solaris 10?

    What happended to the Solaris Crash Analysis Tool 4.2 for Solaris 10?
    I'm trying to debug a kernel panic under Solaris 10 on sparcv9. I tried the SUNWscat 4.1 package but it core dumps on Solaris 10. I found a blog entry that described the problem and mentioned a version 4.2 fix. That was from May 2006, but I have not found any update sense then. Was 4.2 ever released or is their an alternative tool for Solaris 10 that I can use?

    One problem is that those of us who develop Solaris CAT do so as a "hobby" as it's not part of our actual jobs. But he good news is that management gave us the time to get a release out and 5.0 is now available here . We're now planning 6 month releases so we don't have a 5 year delay between updates.
    BTW, the Solaris Crash Analysis Tool supports Solaris 10, OpenSolaris/Solaris Nevada, sparc, and x86/x64.
    There are so many enhancements and bug fixes that I'd recommend reading the release notes (SUNWscat/docs/index.html).
    -- Dana

  • Analysis Tool in Reader 9

    I am unable to use te measure option in Analysis Tool of Adobe Reader 9. In View / Toolbar / More Tools there is a note saying that I have to activate the Document Rights to enable measuring tool.
    It means nothing to me. Anybody can help me?

    I have Acrobat Pro Extended (trial version for while) and I can't see the function that perform this operation. In Adobe Forum search I found references to Java, C# and .NET script to do so.
    Thank you Aandi anyway.

  • I found warning after ran Best practice analyser Tools in exchange 2010

    Hello ,
    when ran Best practice Analyse tool i found some warining :
    1-DNS 'Host' Record Appears to Be Missing
    2-Active Server Pages is
    not installed
    3-Application log size
    4-Self –sign certificate found:
    is strongly recommended that you install an authority-signed or trusted certificate
    The SSL certificate for 'https://exchange.mydomain.com/Autodiscover/Autodiscover.xml' is self-signed. It does not provide any of the security guarantees provided
    by authority-signed or trusted certificates.(i have ssl certificate form geo cert Turst )  all users you can access mails form owa and they  can connect
    mailbox using outlook anywhere but with SSL warning.
    5-Single Global catalog in topology:
    There is only one global catalog server in the Directory Service Access (DSAccess) topology on server CADEXCHANGE. This configuration should be avoided for fault-tolerance
    reasons
    already checked the below links but i am not understood good  :
    http://technet.microsoft.com/en-us/library/6ec1c7f7-f878-43ae-bc52-6fea410742ae.aspx
    http://technet.microsoft.com/en-us/library/4fa708a1-a118-4953-8956-3c50399499f8.aspx
    http://technet.microsoft.com/en-us/library/8867bba7-7f81-42f9-96b6-2feb7e0cea4e.aspx
    please advise me to avoid this issue
    thanks

    i have 2 server both server global catalog
    my question why warning appear only one global catalog
    please explain this.
    when test Autodiscover the test successful but when expand menu
    i am found some error :
    Attempting to test potential Autodiscover URL https://Mydomain.com:443/Autodiscover/Autodiscover.xml
    Testing the SSL certificate to make sure it's valid.
    Validating the certificate name.
    Certificate name validation failed 

  • Source code analysis tools for ActionScript 2?

    I have been tasked with performing source code analysis on a very large (>1000 files) AS2 codebase. 
    Not surprisingly, Googling is not yielding useful results.   Before declaring defeat, I felt it important to query this forum.
    Any guidance would be appreciated.

    We'd like to evaluate the hundreds of files using a static analysis tool, just as one would use lint for a C codebase.
    Thanks,
    M

Maybe you are looking for