I have a question about my Programmers Stack Exchange post: If mutual exclusion is not implemented, how would we detect a race condition?

I am looking for a reply (preferably by Gnat, who removed the answer) about the reason this answer was removed:


Here is the background:

(1) Even though my answer speaks of a solution developed by our company, the Disclaimer was provided;

(2) The information in the answer provided is going to be very helpful to the audience.

All one needed to do is to follow the links and to see for himself/herself that this work is solid and useful for the community.

Please be so kind to answer why my answer was removed.

Below is my answer that was removed:

If your question is about how to detect race conditions, perhaps the most state of the art solution today, which works with small overhead, and with no false positives, is Race Catcher from Thinking Software, Inc.

Small overhead here implies most often being under 10%, however the overhead is target process algorithm dependent. Race Catcher can, therefore, be used not only at the stages of debug and test, bun also in most production cases - in the field, where the most costly races, that slip the test phase, are happening (see ARM-CM described below).

Race Catcher is a dynamic code analyzer that works directly on bytecode and can be seen as an addition to a JVM. That also means that is applicable not only to Java code, but to applications written in any of ~60 languages compiled to bytecode.

An original service called ARM-CM, Application Reliability Monitoring via Collaborating Machines is based on an obvious fact that 100 agents are less expensive and more reliable than 100 human testers.

DISCLAIMER: I am involved with Thinking Software, Inc.

  • 2
    the question asked was "how would we detect a race condition?" Note it wasn't "what tools to use". Per my reading, besides advertising the product your answer doesn't tell readers anything that addresses the question asked (see How to Answer). I think that makes it unsolicited advertising, and disclosing affiliation doesn't really help here sorry – gnat Sep 12 '16 at 18:53
  • @gnat. Since the question was "how would we detect a race condition" the obvious answer - using the tools, and obviously only using reliable tools. So I cant really see your point. I have simply pointed to the best tool I know after performing years of studying and comparing with different technologies and tools. Pointing to another tool would be dishonest. Not saying anything would not be helping the community and not opening anyone's eyes on a new technology.This subject matter of race conditions is quite complex. Here is longer answer: stackoverflow.com/a/29361427/1363844. – Ben Sep 13 '16 at 6:08
  • 1
    I don't buy that reliable tools is an obvious answer. But even if it was, your answer misses to point that. It doesn't even attempt to explain the relation and hurries straight to advertising. Note once again that question doesn't ask for tools - that is, at least for asker, connection is not obvious. If answer had that attempt to explain connection I'd probably hesitate to flag spam (I'd likely "just" vote down and delete and maybe would flag for moderator if it only had that brief "intro") – gnat Sep 13 '16 at 6:58
  • Not trying to pick on anyone, but you mean a disclosure, not a disclaimer. A disclosure reveals something. A disclaimer denies responsibility. – Jerry101 Oct 12 '16 at 6:13

I just took a look. It looks like gnat voted to delete, but the post was also flagged as spam and, after receiving sufficient number of flags, was deleted. I would agree with this deletion, based on the contents of this Help Center page about how not to be a spammer.

The answer doesn't appear to meet the criteria that was laid out in that Help Center article.

Your answer doesn't give any information that can be used by anyone who isn't interested in buying the tool. The Help Center specifically says that the "best way to avoid being seen as a snake-oil salesman is to demonstrate a solution rather than simply asserting the problem an be solved". You state that your tool solves the problem, but doesn't do much other than asserting a third-party solution.

This answer also doesn't provide an "answer for the ages". What happens if you stop making your tool, or your company goes out of business? There's now nothing left that is useful to anyone, except a reference to a dead tool.

  • With all my respect, I am on the opposite corner from a salesmen - never been one. Simply using provided links would show that. Secondly, there is no answer to the question "How .." without correct tools. (“If debugging is the process of removing software bugs, then programming must be the process of putting them in. ” - Edsger Dijkstra). An addition to operating environments, like the one we implemented for JVM, doing program understanding in real time, is the answer. Not allowing to say that is incorrect. Removing answers without looking into them, as caused by gnat, is arrogant. – Ben Sep 13 '16 at 7:11
  • 2
    @Ben I shouldn't have to click on the links to understand them - answers must provide context for links and should stand alone, if those links were to go dead. If your links stopped working, your answer no longer helps. I read your answer, as did other people, and several people came to the conclusion that it didn't meet our standards for a good answer. – Thomas Owens Sep 13 '16 at 9:35
  • It would be very naive to think that one can answer the question within a few lines and without the supporting explanation. Nothing about race conditions would stand alone, except the definition of it, which people keep repeating over and over. It would be also very naive to think that one can magically teach programmers to write code without race conditions. They will never go away as long as people write code. – Ben Oct 16 '16 at 2:50
  • I meant to continue my comment above (is it not editable?) Secondly - no good tool is ever "dead". And you better hope, that there would be other tools as helpful, as this one. And that is again, because, without tools that automate tasks as complex, as locating race conditions, programmers work will suffer. Rejecting this help, and blocking it from being seen by community, is doing the community a disservice. ( It is not personal, I just revolt against those who are"more equal than others" and are in position to "filter", what truth is to "live" and what to "die") – Ben Oct 16 '16 at 3:09
  • @Ben A user flagged it as spam, a moderator agreed with the flag, and I (a second moderator) agrees that it is spam. Even if you removed the links, I don't think that it meets our quality guidelines for answers since it doesn't stand on its own should all of those links go offline. We also don't support advertising products or services as the primary focus of an answer - an answer should be useful to the asker if all references to third-party products and services were removed. – Thomas Owens Oct 16 '16 at 11:31
  • @Ben Not to mention that 6 people up-voted this answer. Even if the original flagging user and original moderator who handled this flag up voted, that still means between 8 and 10 people agree with the interpretation laid out here. There's also no dissenting view from anyone else in the community - we can (and have) reversed decisions with a compelling argument. No one is presenting why this particular answer meets our guidelines. Probably because it doesn't. – Thomas Owens Oct 16 '16 at 11:34

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .