Data race detection tool
Is there an easy way to inquire whether any error has been detected?
It would be nice if in a makefile this would be possible:
rdt -check race.er
echo $?
regards,
Dieter
Yes, that's would I just programmed.
So I am answering my own stupid question with this little script called check_races
#!/bin/ksh
rc=$(echo races | er_print $1 2> /dev/null | grep 'Total Races: 0' > /dev/null 2>&1 )
return $rc
and then in the Makefile:
check_races races.er || rdt races.er
Thanks
Dieter
Similar Messages
-
Hi,
I am having data race (race condition) issue in the following code (pseudo code):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
public class MainClass implements Runnable{
Vector queue = new Vector();
public MainClass{
createInnerClass();
private void createInnerClass{
Thread th = new Thread(new InnerClass());
th.start();
public void stop(){
Loop(queue){ <<< DATA RACE DETECTED
queue.remove();
public InnerClass implements{
public void run(){
queue = new Vector(); <<<< DATA RACE DETECTED
Loop(queue){
queue.add(Object);
So I have changed the code as follows:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
public class MainClass implements {
Vector queue = new Vector();
public MainClass{
createInnerClass();
private void createInnerClass{
Thread th = new Thread(new InnerClass());
th.start();
public void stop(){
synchronized(queue){ <<< Put a monitor on queue
Loop(queue){ <<< DATA RACE IS STILL OCCURING
queue.remove();
public InnerClass implements{
public void run(){
synchronized(queue){ <<< Put a monitor on queue
queue = new Vector(); <<<< DATA RACE IS STILL OCCURING
Loope(queue){
queue.add(Object);
I have put a monitor on queue variable but still the data race is still occurring (I am using JProbe ThreadAnalyzer to analyze the program).
Suggestion will be greatly admired.
With Regards
Duke BiswasThank you so much for you reply.
I am little bit confused when you mentioned that I
have put sync on object not on variable
instance. I don't want to goto Java basic, but my
understanding of object and variable is
very much same. No. The object is a chunk of memory, and the variable is your "handle" to it.
Object o1 = new Object();
Object o2 = new Object();
Object o3 = o2;
Object #1
+----+ +----------+
| o1 | ---> | |
+----+ +----------+
Object #2
+----+ +----------+
| o2 | ---> | |
+----+ +----------+
^
+----+ |
| o3 | ------+
+----+When you do synchronized(o3); you're synchronizing on the object that o3 points to--in this case, Object #2. If you then say o3 = new Object(); you'll end up with this picture. Object #1
+----+ +----------+
| o1 | ---> | |
+----+ +----------+
Object #2
+----+ +----------+
| o2 | ---> | |
+----+ +----------+
Object #3
+----+ +----------+
| o3 | ---> | |
+----+ +----------+ but you're still sycned on Object #2. The reference (the variable) is only used as a way to find the object at the point where the word "synchronized" appears[i]. Pointing the reference (variable) at different objects does not cause the lock to follow the reference.
public class MainClass implements Runnable{
Vector queue = new Vector();
public InnerClass implements Runnable{
public void run(){
synchronized(queue){ >>>> SET A MONITOR2
queue = new Vector(); >>>> DATA RACE IS
DATA RACE IS STILL OCCURING
Loop{
queue.add(c);
} You'd have to switch the order of assigning to queue and syncing on it: queue = new Vector();
synchronized(queue) {
... However that code looks weird anyway. You intialize the queue member variable in the constructor, and then you assign a new Vector to it in the run method. I don't think you want to do that.
I suspect there are other problems too, but I can't pinpoint anything at the moment. -
DRDT: breakpoint on data race?
Hi,
I just started to try DRDT, and it looks very promising. I understand that things like missing stack traces are due to the beta status of the tool. I am also a bit concerned about the performance: I used it with an application which is about to be transformed from single threaded to multithreaded, and I get about 800 data races. This needs, on a Blade-1500, more than five minutes until the list of races is displayed in rdt.
It is immediately apparent, when looking at these data race stack traces, that it would be VERY useful to have a feature like "breakpoint on data race" in dbx! That would probably mean that the event mechanism in dbx would have to be extended accordingly, and that this would only work with instrumented executables, but this could be an invaluable feature.
Purify has something like that with memory errors: they invoke a function "purify_stop_here" on errors they detect, and developers can set breakpoints on this function. This is extremely useful.
Regards
Dieter RuppertAs a workaround, if you can see the stack traces reported by DRDT, then you can
use some of the advanced breakpoint features in dbx to stop at exactly that point.
If you want to stop on entry to "foo" but only when foo is called from bar, you can
use "stop in foo -in bar" (note the dash in the "-in").
Your request sounds like a good RFE. -
Race detection in child processes
Hi,
the program given below creates a child process with two threads accessing a shared variable. Unfortunately, Thread Analyzer does not detect the race (neither version 12.0 nor 12.3). The race is only detected if it occurs in the parent process. Option "-F on/all" to instrument child processes does not work in conjunction with option "-r all" (the collect tool emits the error message "
Race-detection data cannot be collected with any of -F -j -J -x"). Is this an inherent limitation of Thread Analyzer or is there a way to detect races and deadlocks in child processes?
Thank you very much in advance for your help.
Regards
#include <unistd.h>
#include <stdlib.h>
#include <assert.h>
#include <pthread.h>
int x;
void* fun(void*)
x++;
return NULL;
int main ()
x = 0;
int pid = fork();
assert(pid >= 0);
if (pid == 0)
/* Child process */
pthread_t thread;
assert(pthread_create(&thread, NULL, fun, NULL) == 0);
x++;
assert(pthread_join(thread, NULL) == 0);
_exit(0);
else
/* Parent process */
sleep (1);
return 0;Just an update in case someone has seen this issue. The problem I am seeing is that some reports will spawn these child processes (that's how the appear in toad). At the DB level it is just another database process which shows up from v$session. I don't know how the application is calling to use as many processes as possible but this is what I am trying to limit on. If I run the same query in SQLPlus, only one process SID is created.
-
Using network data to detect DPI
"Network transparency cuts both ways. It can be exploited to engage in surveillance of Internet service providers as well as Internet users. In order to better understand DPI use and the scope of its deployment, the project makes use of crowdsourced network monitoring data. So far, we have used data from a test known as Glasnost, which was developed by German researchers to detect blocking or throttling of BitTorrent and other peer to peer (P2P) file sharing protocols. The detailed workings of the Glasnost test are described in Dischinger, Marcon, et al (2010)."
using network data to detect dpi
Use tools running on M-Lab to test your Internet connection.John the point being that DPI would need to be used based on what the post says to keep it unthrottled.
It's DPI that is the privacy concern not throtteling so BT's use of DPI which may be increasing is a concern not least since they have been known to run 'tests' of dubious legality before now (Phorm or some such as I recall)
If my post was helpful then please click on the Ratings star on the left-hand side If the the reply answers your question fully then please select ’Mark as Accepted Solution’ -
DTP Error: Duplicate data record detected
Hi experts,
I have a problem with loading data from DataSource to standart DSO.
In DS there are master data attr. which have a key containing id_field.
In End routine I make some operations which multiple lines in result package and fill new date field - defined in DSO ( and also in result_package definition )
I.E.
Result_package before End routine:
__ Id_field ____ attra1 ____ attr_b ...___ attr_x ____ date_field
____1________ a1______ b1_________ x1
____2________ a2______ b2_________ x2
Result_package after End routine:
__ Id_field ____ attra1 ____ attr_b ..___ attr_x ____ date_field
____1________ a1______ b1_________ x1______d1
____2________ a1______ b1_________ x1______d2
____3________ a2______ b2_________ x2______d1
____4________ a2______ b2_________ x2______d2
The date_field (date type) is in a key fields in DSO
When I execute DTP I have an error in section Update to DataStore Object: "Duplicate data record detected "
"During loading, there was a key violation. You tried to save more than one data record with the same semantic key."
As I know the result_package key contains all fields except fields type i, p, f.
In simulate mode (debuging) everything is correct and the status is green.
In DSO I have uncheched checkbox "Unique Data Records"
Any ideas?
Thanks in advance.
MGHi,
In the end routine, try giving
DELETE ADJACENT DUPLICATES FROM RESULT_PACKAGE COMPARING XXX YYY.
Here XXX and YYY are keys so that you can eliminate the extra duplicate record.
Or you can even try giving
SORT itab_XXX BY field1 field2 field3 ASCENDING.
DELETE ADJACENT DUPLICATES FROM itab_XXX COMPARING field1 field2 field3.
this can be given before you loop your internal table (in case you are using internal table and loops) itab_xxx is the internal table.
field1, field2 and field 3 may vary depending on your requirement.
By using the above lines, you can get rid of duplicates coming through the end routine.
Regards
Sunil
Edited by: Sunny84 on Aug 7, 2009 1:13 PM -
Logic pro 9.1.7 does not show note velocity data with velocity tool
Anyone have an issue with files not showing note velocity and duration data with velocity tool in the piano roll in Logic 9.1.7? It only show the note and the velocity change (+1 or -1 for instance). I have to use Logic 9.1.5 because of that.
Hi
glankrudolph wrote:
I realize this could be a host of issues other than Logic Pro 9, such as Audio Midi Setup (which often doesn't recognize my Mbox2 Pro). But again, thought I'd start here.
If Audio MIDI Setup cannot see/recognise the MBox, then Logic will be unable to see it. Audio MIDI Setup is at OS level: if your MBox does not show up it is likely to be:
Driver issues (highly likely)
Cable Issues
FW socket issues: hardware fault.
CCT -
Tecra S11: Toshiba Detection Tool: Your product could not be found error
Hi,
I use Toshiba Detection Tool to find drivers quickly for my tecra, but for a month now the page gives this error
Your product could not be found
It is no problem to select my laptop from the drop down list again and again, but it was comfortable, when it worked.
Is there a solution for this problem?No, there is a Detection tool an exe file. "TOSHIBA-detector,exe" You run it and it opens a browser with your exact product's driver psge. (My Toshiba laptop is a european one.)
The error message:
Auto Detect Error
Sorry!
Your product could not be found
Please click here to return to the support homepage where you can manually select your product -
Hello,
I manage a number of academic computer labs, three of which are Mac OS X 10.5.8 units with Adobe Flash CS5 installed. Users log in using AD credentials and the client computers are managed with settings in OD Workgroup Manager (MCX records). The AD plugin is set to not force local home directories and users' home directories are located on network storage. ~/Library/Caches/* has been redirected locally, but no other folders are redirected.
Users have been reporting an issue where Flash sometimes appears to freeze during loading. I've been told this has been happening for about two semesters, but I was not aware of the issue until today. It sounds like students have been powering off the machines and logging back in, and hoping Flash will work on that attempt. When a 'freeze' is encountered the Flash splash screen appears and the status below the "Adobe Flash Professional CS5" text states it is "Copying First Run Files..."
Checking the console, I can see that Flash appears to be attempting to access files, but is encountering issues. Dozens of times, I see errors like the following:
11/3/11 3:17:41 PM /Applications/Adobe Flash CS5/Adobe Flash CS5.app/Contents/MacOS/Adobe Flash CS5[2801] Allocator race detected: transaction is not verified for -112/2 - Library/Application Support/Adobe/Flash CS5/en_US/Configuration/ProcScripts/svg/LineBrushArt10.svg
11/3/11 3:17:45 PM /System/Library/CoreServices/coreservicesd[62] removing dropped transaction for -112,Library/Application Support/Adobe/Flash CS5/en_US/Configuration/ProcScripts/svg/LineBrushArt10.svg
11/3/11 3:17:45 PM /Applications/Adobe Flash CS5/Adobe Flash CS5.app/Contents/MacOS/Adobe Flash CS5[2801] Allocator race detected: transaction is not verified for -112/2 - Library/Application Support/Adobe/Flash CS5/en_US/Configuration/ProcScripts/svg/LineBrushArt11.svg
11/3/11 3:17:45 PM /Applications/Adobe Flash CS5/Adobe Flash CS5.app/Contents/MacOS/Adobe Flash CS5[2801] Allocator race detected: transaction is not verified for -112/2 - Library/Application Support/Adobe/Flash CS5/en_US/Configuration/ProcScripts/svg/LineBrushArt11.svg
11/3/11 3:17:49 PM /System/Library/CoreServices/coreservicesd[62] removing dropped transaction for -112,Library/Application Support/Adobe/Flash CS5/en_US/Configuration/ProcScripts/svg/LineBrushArt11.svg
11/3/11 3:17:49 PM /Applications/Adobe Flash CS5/Adobe Flash CS5.app/Contents/MacOS/Adobe Flash CS5[2801] Allocator race detected: transaction is not verified for -112/2 - Library/Application Support/Adobe/Flash CS5/en_US/Configuration/ProcScripts/svg/LineBrushArt12.svg
11/3/11 3:17:49 PM /Applications/Adobe Flash CS5/Adobe Flash CS5.app/Contents/MacOS/Adobe Flash CS5[2801] Allocator race detected: transaction is not verified for -112/2 - Library/Application Support/Adobe/Flash CS5/en_US/Configuration/ProcScripts/svg/LineBrushArt12.svg
11/3/11 3:17:53 PM /System/Library/CoreServices/coreservicesd[62] removing dropped transaction for -112,Library/Application Support/Adobe/Flash CS5/en_US/Configuration/ProcScripts/svg/LineBrushArt12.svg
11/3/11 3:17:53 PM /Applications/Adobe Flash CS5/Adobe Flash CS5.app/Contents/MacOS/Adobe Flash CS5[2801] Allocator race detected: transaction is not verified for -112/2 - Library/Application Support/Adobe/Flash CS5/en_US/Configuration/ProcScripts/svg/LineBrushArt13.svg
11/3/11 3:17:57 PM /System/Library/CoreServices/coreservicesd[62] removing dropped transaction for -112,Library/Application Support/Adobe/Flash CS5/en_US/Configuration/ProcScripts/svg/LineBrushArt13.svg
11/3/11 3:17:57 PM /Applications/Adobe Flash CS5/Adobe Flash CS5.app/Contents/MacOS/Adobe Flash CS5[2801] Allocator race detected: transaction is not verified for -112/2 - Library/Application Support/Adobe/Flash CS5/en_US/Configuration/ProcScripts/svg/LineBrushArt14.svg
11/3/11 3:17:57 PM /Applications/Adobe Flash CS5/Adobe Flash CS5.app/Contents/MacOS/Adobe Flash CS5[2801] Allocator race detected: transaction is not verified for -112/2 - Library/Application Support/Adobe/Flash CS5/en_US/Configuration/ProcScripts/svg/LineBrushArt14.svg
Messages like these, but listing different files, have been going on since I launched Flash at 11/3/11 3:06 PM.
If you have encountered this problem or have any information for me, please let me know.
Thank you,
Branden OhlingerBased on some searching and testing, it seems that if you redirect ~/Library/Application Support/Adobe/Flash CS5 to a location on the local hard drive, rather than the network account storage, the problem ceases.
I hope this helps anyone else who may run into this problem.
Take care,
Branden -
Scope for data warehousing ETL Tool
Hi all
can anybody explain scope for data warehousing ETL Tool
for oracle developer in future this is ok or..
regards
Message was edited by:
174313What exactly is your question?
The scope of using an ETL tool would be setting up and maintaining datawarehouses and building ETL processes to populate these datawarehouses.
A tool is generally preferred over hand coding because tools allow better maintenance, shorter development cycles etc.
Oracle has a pretty good ETL tool, called Oracle Warehouse Builder. It's not the best tool available, but if you compare price/ functionality I would say in most cases it will do.
If your question is if it's a wise pick to master OWB or any ETL tool my answer would be a clear YES! Datawarehouses and BI are becoming more important every day, their use gets broader everyday.
If your question is if an investment in OWB is a wise investment for the future I would answer a clear YES again. It's increddilbe to see what progress Oracle made with the tool, coming from a 'laughing stock' postition, regarded completely immature good for nothing tool, to where they are now, with 10.2. Regarded as one of the leaders by Gartner.
Oracle has recognized (a long while ago) that ETL is the bread and butter of the future and invests in a good quality tool for accomplishing this.
I hope this answes your question, if not, please try to specify more clearly.
Regards,
Toin. -
Is there a translator for garageband-output-data available to numerical data to postprocess these data with mathematical tools like Fourier decomposition.
I'm not sure I understand what you want to do - but if you want to analyze the composite audio signal, just share the GB project to an audio file on your hard disk and keep working on the resulting AIFF.
-
System.log - Allocator race detected
I'm trying to sort out some problems on an Xserve box. I'm new to OS X server administration so I'm trying to figure out what messages are important. The following message comes up a lot and I'm wondering what it means. I haven't been able to find any references on Google.
Apr 30 16:23:34 coreone /usr/sbin/AppleFileServer[173]: Allocator race detected: transaction is not verified for -102/2 - FILESERVER/files/working.psd
Thanks,
LeviBased on some searching and testing, it seems that if you redirect ~/Library/Application Support/Adobe/Flash CS5 to a location on the local hard drive, rather than the network account storage, the problem ceases.
I hope this helps anyone else who may run into this problem.
Take care,
Branden -
Intel vt-x not supported on boot camp windows 7 (virtualbox and microsoft detection tool)
Hello,
I've a MBP mid-2010 that is running a Windows 7 Pro as boot camp partition (business needs).
I've installed virtualbox on the Windows 7 OS, but I can't access the "accelration" tab under the system settings.
When running an imported OVA system (that uses Intel VT-x) I get an error message saying :
"VT-x/AMD-V hardware acceleration is not available on your system. Your 64-bit guest will fail to detect a 64-bit CPU and will not be able to boot."
Using the Microsoft® Hardware-Assisted Virtualization Detection Tool, I get the confirmation that it is not available on my computer.
Which is really strange because it is working perfectly under Mac Os X Mavericks (and previous).
Anyone has an idea ?
Regards,
Franck.I have this exact same issue, except I'm trying to use Hyper-V in Windows 8.1. Windows is running via Bootcamp 5, I have a late 2013 Macbook pro model.
I get the error message Hyper-V cannot be installed: Virtualization support is disabled in the firmware.
After poking around online, most information points to the Mac EFI firmware. It might be an update is available there that will help with VT-X
http://support.apple.com/kb/ht1237
However, there's no update for my particular Macbook. I've only found one workaround that I don't really know how/why it works.
1. Power off my macbook, completely shut down.
2. Hold the option key to boot into OSX Mavericks instead of Windows.
3. Restart from OSX and let Windows boot by default.
For some odd reason, VT-X is now enabled. This may be specific to my Mac. It's a Macbook Pro 2013, 15'' - '11,3' model. -
Oracle data integrator compatibility tool with sap 4.6 and 6.0?
Hi,
Please let me know if oracle data integrator compatibility tool is compartile with the sap 4.6 and 6.0 version?
RegardsIf it's in SAP Standard, check OSS note.
If it's customer program modify
write statement for gemp-g_emp_with_2m01 UNDER text-h12 LEFT-JUSTIFIED
to
write statement for gemp-g_emp_with_2m01 UNDER text-h12 LEFT-JUSTIFIED CURRENCY "currency-field".
Where currency-field is the reference currency field for gemp-g_emp_with_2m01.
Peter -
What is the gcc/g++ compiler option for data race?
Is data race detaction supported on Linux using gcc/g++?
It seems it is only supported on Solaris using -xinstrument=datarace option in "CC".
Thanks,
EthanEthanWan wrote:
Is data race detaction supported on Linux using gcc/g++?This is not the best place to ask about GNU compilers options this forum being about Sun Studio compilers. There are plenty of places devoted specifically to gcc/g++.
Maybe you are looking for
-
I have an apple id but ı can not use it for sign in to itunes connect account while publishing my ibook document. Why ı can not login? What can ı do to figure out this problem?
-
IPod video dock with iPhone 3GS
Hi guys, New iPhone user and OMG what have i been missing!! Loving it. Quick question, I am using the iPhone in my iPod dock and I get a message on my iPhone "Not supported Blah Blah" but the phone is charging and I can transfer, make calls etc. Is i
-
Hi, I have a SCCM 2012 R2 CU3 lab where pxe is not working, the clients are able to connect to SCCM server but the download gets stuck on the boot image & then it fails with the following error :- Don't find any specific error related to this deploym
-
Function moudule error - table parameters obsolete
Subject changed by moderator. Please use a meaningful subject in future Hi SAP-ABAP experts, can i get get the information for the following error. when i was giving *structure* name in tables parameter and gave th
-
URGENT: Add Non-working day value to the next working day
Hello expertz! I have a requirement were i need to shift the values of the non-working days to the next working day. The report allready works, showing only the values for the working days, but for example if i have the amount of 100 on 06.12.2009 (s