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

  • Data Race

    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 Biswas

    Thank 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 Ruppert

    As 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.
    MG

    Hi,
          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

  • Allocator race detected, Adobe Flash Pro CS5 on Mac OS X 10.5.8 using network accounts

    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 Ohlinger

    Based 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:
    174313

    What 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 to numerical data? available, to postprocess these data with mathematical tools like Fourier decomposition?

    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,
    Levi

    Based 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?
    Regards

    If 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,
    Ethan

    EthanWan 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