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
-
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. -
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,
JoeI 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 GandhiNo 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?
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. -
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 SSDSame 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,
DominikHi 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 PMIt 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 -
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
thanksi 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
-
How do I see the number of e-mails in my inbox using the standard mail app?
Hi, Before ios7 I used to be able to see how many e-mails were in my inbox for each synced account. Now this information doesn't appear like it used to. It is very frustrating for me as I used to use this as a tool to prompt a tidy up of my inbox f
-
IPod Touch appears as "Apple iPod" in windows and does not appear on itunes
I have checked the Apple Device Manager and stiff, checked the registry, restarted the computer and more, but to no avail. I have a 5th Gen iPod Touch 64Gb and is named "MrUnkownGuy" Windows 8.1 Pro Problem: The device appears on Windows as "Apple iP
-
What's wrong with my Mac App store.
It says I have insufficient funds for my purchase for Grand Theft Auto: San Andreas ($14.99). But I have more than enough money to buy it($15.31). What's going on
-
Transporting ZIDOC from DEV to QA
Hi people, How can I transport an ZIDOC from DEV system to QA system? Didn't find a way of putting an IDOC in a transport request... we can transport ZIDOC's by this way or there is another way? thank you, roberti
-
My existing account has iOS6 and the new one is still not updated...