Ayende @ Rahien

Ayende @ Rahien

Oren Eini aka Ayende Rahien CEO of Hibernating Rhinos LTD, which develops RavenDB, a NoSQL Open Source Document Database.

Get in touch with me:

oren@ravendb.net

+972 52-548-6969

Posts: 7,430 | Comments: 50,881

Copyright ©️ Ayende Rahien 2004 — 2023

Privacy Policy Terms
filter by tags archive
stack view grid view
  • architecture (561) rss
  • bugs (437) rss
  • challanges (120) rss
  • community (357) rss
  • databases (448) rss
  • design (859) rss
  • development (582) rss
  • hibernating-practices (62) rss
  • miscellaneous (590) rss
  • performance (362) rss
  • programming (1041) rss
  • raven (1356) rss
  • ravendb.net (430) rss
  • reviews (182) rss
  • uberprof (41) rss
  • 2023
    • June (7)
    • May (3)
    • April (11)
    • March (5)
    • February (5)
    • January (8)
  • 2022
    • December (5)
    • November (7)
    • October (7)
    • September (9)
    • August (10)
    • July (15)
    • June (12)
    • May (9)
    • April (14)
    • March (15)
    • February (13)
    • January (16)
  • 2021
    • December (23)
    • November (20)
    • October (16)
    • September (6)
    • August (16)
    • July (11)
    • June (16)
    • May (4)
    • April (10)
    • March (11)
    • February (15)
    • January (14)
  • 2020
    • December (10)
    • November (13)
    • October (15)
    • September (6)
    • August (9)
    • July (9)
    • June (17)
    • May (15)
    • April (14)
    • March (21)
    • February (16)
    • January (13)
  • 2019
    • December (17)
    • November (14)
    • October (16)
    • September (10)
    • August (8)
    • July (16)
    • June (11)
    • May (13)
    • April (18)
    • March (12)
    • February (19)
    • January (23)
  • 2018
    • December (15)
    • November (14)
    • October (19)
    • September (18)
    • August (23)
    • July (20)
    • June (20)
    • May (23)
    • April (15)
    • March (23)
    • February (19)
    • January (23)
  • 2017
    • December (21)
    • November (24)
    • October (22)
    • September (21)
    • August (23)
    • July (21)
    • June (24)
    • May (21)
    • April (21)
    • March (23)
    • February (20)
    • January (23)
  • 2016
    • December (17)
    • November (18)
    • October (22)
    • September (18)
    • August (23)
    • July (22)
    • June (17)
    • May (24)
    • April (16)
    • March (16)
    • February (21)
    • January (21)
  • 2015
    • December (5)
    • November (10)
    • October (9)
    • September (17)
    • August (20)
    • July (17)
    • June (4)
    • May (12)
    • April (9)
    • March (8)
    • February (25)
    • January (17)
  • 2014
    • December (22)
    • November (19)
    • October (21)
    • September (37)
    • August (24)
    • July (23)
    • June (13)
    • May (19)
    • April (24)
    • March (23)
    • February (21)
    • January (24)
  • 2013
    • December (23)
    • November (29)
    • October (27)
    • September (26)
    • August (24)
    • July (24)
    • June (23)
    • May (25)
    • April (26)
    • March (24)
    • February (24)
    • January (21)
  • 2012
    • December (19)
    • November (22)
    • October (27)
    • September (24)
    • August (30)
    • July (23)
    • June (25)
    • May (23)
    • April (25)
    • March (25)
    • February (28)
    • January (24)
  • 2011
    • December (17)
    • November (14)
    • October (24)
    • September (28)
    • August (27)
    • July (30)
    • June (19)
    • May (16)
    • April (30)
    • March (23)
    • February (11)
    • January (26)
  • 2010
    • December (29)
    • November (28)
    • October (35)
    • September (33)
    • August (44)
    • July (17)
    • June (20)
    • May (53)
    • April (29)
    • March (35)
    • February (33)
    • January (36)
  • 2009
    • December (37)
    • November (35)
    • October (53)
    • September (60)
    • August (66)
    • July (29)
    • June (24)
    • May (52)
    • April (63)
    • March (35)
    • February (53)
    • January (50)
  • 2008
    • December (58)
    • November (65)
    • October (46)
    • September (48)
    • August (96)
    • July (87)
    • June (45)
    • May (51)
    • April (52)
    • March (70)
    • February (43)
    • January (49)
  • 2007
    • December (100)
    • November (52)
    • October (109)
    • September (68)
    • August (80)
    • July (56)
    • June (150)
    • May (115)
    • April (73)
    • March (124)
    • February (102)
    • January (68)
  • 2006
    • December (95)
    • November (53)
    • October (120)
    • September (57)
    • August (88)
    • July (54)
    • June (103)
    • May (89)
    • April (84)
    • March (143)
    • February (78)
    • January (64)
  • 2005
    • December (70)
    • November (97)
    • October (91)
    • September (61)
    • August (74)
    • July (92)
    • June (100)
    • May (53)
    • April (42)
    • March (41)
    • February (84)
    • January (31)
  • 2004
    • December (49)
    • November (26)
    • October (26)
    • September (6)
    • April (10)
RavenDB 5.4 - Kafka and RabbitMQ ETL, Grafana for data
  previous post next post  
Jan 27 2009

And now what?

time to read 1 min | 48 words

It looks like the entire MSMQ .NET stack is riddled with threading bugs. At least if you think about using the async methods such as BeginPeek.

Nasty!

image

Tweet Share Share 13 comments
Tags:
  • Bugs
  • Microsoft

  previous post next post  

Comments

J
27 Jan 2009
18:08 PM
J

have you ever thought about joining Microsoft as a tester? :)

Kelly Stuard
27 Jan 2009
18:43 PM
Kelly Stuard

@J - haha - second that!

shawn
27 Jan 2009
18:55 PM
shawn

are you using PeekCompleted? i use this pattern for peeks and reads and it may be why i haven't encountered the set of problems you have.

msdn.microsoft.com/.../...queue.peekcompleted.aspx

Ayende Rahien
27 Jan 2009
19:12 PM
Ayende Rahien

shawn,

No, I am using the delegate passed to the async method

Justin Etheredge
27 Jan 2009
20:03 PM
Justin Etheredge

If you are going to make a statement like this, then shouldn't you at least show the situation under which the error occurred? From what you have shown us, it is hard to ascertain if your claims are indeed true, or you are doing something wrong and just blaming it on the .net MSMQ apis.

Ayende Rahien
27 Jan 2009
20:16 PM
Ayende Rahien

Justin,

Null Reference is almost always a bug.

In this case, I am access the AppSpecific property on a message, and it throws this error.

This is caused because of a bug in certain scenarios in which even though the queue is set to accept AppSpecific, it doesn't

James
27 Jan 2009
20:21 PM
James

An assert failing in production code means that some invariant somewhere is no longer true, and that the author of the code considered such a situation a bug.

Therefore Oren's statement is valid.

Justin Etheredge
27 Jan 2009
20:22 PM
Justin Etheredge

@Ayende Thanks for the clarification. I didn't doubt that it was a bug on their part, I just like seeing what caused them so that I know in the future where the dragons may be.

Ayende Rahien
27 Jan 2009
20:24 PM
Ayende Rahien

No, that is actually not an assert that is failing.

The assert is in my code.

The problem is that NRE.

Mr Anonymous
27 Jan 2009
22:05 PM
Mr Anonymous

choke JMS.... :-P

Mr_Me
27 Jan 2009
22:11 PM
Mr_Me

@Mr Anonymous

Hey no fair - you stole my handle.

Jeremy Gray
27 Jan 2009
23:58 PM
Jeremy Gray

Though context is and always would be helpful (or at least more informative ;) ) I'm with Oren on this one. NRE == bug.

Bruno Martínez
03 Feb 2009
17:52 PM
Bruno Martínez

You should stop relying in ObjectDisposedException and not touch an object after disposing it. Think of ObjectDisposedException as a debuging aide.

Comment preview

Comments have been closed on this topic.

Markdown formatting

ESC to close

Markdown turns plain text formatting into fancy HTML formatting.

Phrase Emphasis

*italic*   **bold**
_italic_   __bold__

Links

Inline:

An [example](http://url.com/ "Title")

Reference-style labels (titles are optional):

An [example][id]. Then, anywhere
else in the doc, define the link:
  [id]: http://example.com/  "Title"

Images

Inline (titles are optional):

![alt text](/path/img.jpg "Title")

Reference-style:

![alt text][id]
[id]: /url/to/img.jpg "Title"

Headers

Setext-style:

Header 1
========
Header 2
--------

atx-style (closing #'s are optional):

# Header 1 #
## Header 2 ##
###### Header 6

Lists

Ordered, without paragraphs:

1.  Foo
2.  Bar

Unordered, with paragraphs:

*   A list item.
    With multiple paragraphs.
*   Bar

You can nest them:

*   Abacus
    * answer
*   Bubbles
    1.  bunk
    2.  bupkis
        * BELITTLER
    3. burper
*   Cunning

Blockquotes

> Email-style angle brackets
> are used for blockquotes.
> > And, they can be nested.
> #### Headers in blockquotes
> 
> * You can quote a list.
> * Etc.

Horizontal Rules

Three or more dashes or asterisks:

---
* * *
- - - - 

Manual Line Breaks

End a line with two or more spaces:

Roses are red,   
Violets are blue.

Fenced Code Blocks

Code blocks delimited by 3 or more backticks or tildas:

```
This is a preformatted
code block
```

Header IDs

Set the id of headings with {#<id>} at end of heading line:

## My Heading {#myheading}

Tables

Fruit    |Color
---------|----------
Apples   |Red
Pears	 |Green
Bananas  |Yellow

Definition Lists

Term 1
: Definition 1
Term 2
: Definition 2

Footnotes

Body text with a footnote [^1]
[^1]: Footnote text here

Abbreviations

MDD <- will have title
*[MDD]: MarkdownDeep

 

FUTURE POSTS

  1. Integer compression: SIMD bit packing and unusual usages - 3 days from now
  2. Integer compression: Understanding FastPFor - 4 days from now
  3. Integer compression: The FastPFor code - 5 days from now

There are posts all the way to Jun 14, 2023

RECENT SERIES

  1. Integer compression (6):
    08 Jun 2023 - Using SIMD bit packing in practice
  2. Talk (7):
    09 Jun 2023 - Scalable Architecture From the Ground Up
  3. Fight for every byte it takes (6):
    01 May 2023 - Decoding the entries
  4. Looking into Corax’s posting lists (3):
    17 Apr 2023 - Part III
  5. Recording (8):
    17 Feb 2023 - RavenDB Usage Patterns
View all series

RECENT COMMENTS

  • I must say that is over my head, but in case the following is in the same area of function, I am linking to this recent artic...
    By peter on Integer compression: Understanding Simd Compression by Lemire
  • true/false and +/-1 are the hardest to find, but so humiliating when found 😅 // Ryan
    By Ryan Heath on Bug chasing, the process is more important than the result
  • Ant, I'm doing that based on an existing test, not trying to create a new one. The issue was narrowing down the actual ...
    By Oren Eini on Bug chasing, the process is more important than the result
  • The areas where random testing like CsCheck really shines are: * Algorithms - compare the result to an inefficient/brute f...
    By Ant on Bug chasing, the process is more important than the result
  • If you use CsCheck say you can create the simple sub scope generator as below. Gens are composable in a fluent style so more ...
    By Ant on Bug chasing, the process is more important than the result

Syndication

Main feed Feed Stats
Comments feed   Comments Feed Stats