Oren Eini

aka Ayende Rahien

Oren Eini

CEO of RavenDB

a NoSQL Open Source Document Database

Get in touch with me:

oren@ravendb.net +972 52-548-6969

Posts: 7,578
|
Comments: 51,203

Copyright ©️ Ayende Rahien 2004 — 2025

Privacy Policy · Terms
filter by tags archive
stack view grid view
  • architecture (608) rss
  • bugs (450) rss
  • challanges (123) rss
  • community (378) rss
  • databases (481) rss
  • design (894) rss
  • development (640) rss
  • hibernating-practices (71) rss
  • miscellaneous (592) rss
  • performance (397) rss
  • programming (1085) rss
  • raven (1445) rss
  • ravendb.net (529) rss
  • reviews (184) rss
  • 2025
    • May (10)
    • April (10)
    • March (10)
    • February (7)
    • January (12)
  • 2024
    • December (3)
    • November (2)
    • October (1)
    • September (3)
    • August (5)
    • July (10)
    • June (4)
    • May (6)
    • April (2)
    • March (8)
    • February (2)
    • January (14)
  • 2023
    • December (4)
    • October (4)
    • September (6)
    • August (12)
    • July (5)
    • June (15)
    • 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)
Comparison page for RavenDB and MongoDB
  previous post next post  
Feb 10 2009

Find the bug

time to read 1 min | 35 words

Can you tell me what is the bug in this piece of code?

image

Note, this is not a configuration or deployment error. This is a bug.

Tweet Share Share 24 comments
Tags:
  • Bugs

  previous post next post  

Comments

Chris Ortman
10 Feb 2009
19:15 PM
Chris Ortman

The blog is that the error message is totally unhelpful?

But I would assume the bug to be that the MessageLoggingModule was no longer creating its own queue?

Chris Ortman
10 Feb 2009
19:18 PM
Chris Ortman

I mean bug, not blog...

Mike Chaliy
10 Feb 2009
19:38 PM
Mike Chaliy

I think its information disclosure issue, you should not uncover implementation details, in your case you do not handle exceptions. Other exception could uncovero much more information.

Guy Ellis
10 Feb 2009
19:54 PM
Guy Ellis

If you hadn't told me that it was a bug I would have said that the Q was misnamed. I came across this recently and that was what the problem was...

Nicholas Piasecki
10 Feb 2009
20:21 PM
Nicholas Piasecki

Either tell me that the queue does not exist OR I do not have sufficient permissions to do the operation, but not both in a single ambiguous exception.

(?)

Joao Braganca
10 Feb 2009
20:26 PM
Joao Braganca

The framework is riddled with error messages like this. 'The file does not exist OR you do not have sufficient permissions...'

Steve
10 Feb 2009
20:45 PM
Steve

I would like to buy a stack trace.

You'll get this type of message if you have a bad queue name.

Chris Shaffer
10 Feb 2009
21:24 PM
Chris Shaffer

If this is a production system, I would say the bug is that the screen showed up at all. The error should have been logged and a user friendly error screen displayed.

Ryan Roberts
10 Feb 2009
21:35 PM
Ryan Roberts

Which Queue?

beefarino
10 Feb 2009
22:13 PM
beefarino

Assume your client is a blackhat.

If the exception told you that the queue exists, but you don't have permission to access it, then your server just gave the client information it shouldn't have.

It's the same as telling someone that a username is recognized, but the password is not correct. You're giving up information that gives the blackhat a clue as to how to proceed with an attack.

And yes, I realize that the custom error page can be disabled in production. But the exception could have been caught by a local subversive client app that shouldn't be running. The framework doesn't know the difference.

Tobin Harris
10 Feb 2009
22:17 PM
Tobin Harris

I don't work with MSMQ, but what the heck. It was a network exception that was incorrectly re-thrown.

Ayende Rahien
10 Feb 2009
23:05 PM
Ayende Rahien

Ryan,

You are correct.

This is an utterly useless error message, because when I look at it, I don't have enough context to know what caused the issue.

Demid
10 Feb 2009
23:19 PM
Demid

You forgot to create a queue before using it, didn't you?

Dave
11 Feb 2009
08:27 AM
Dave

You mean that the queues are not 'managed' with business objects? There should always be only one method that should send or received messages to a queue. Those methods can than catch the error and than you KNOW in which queue something did go wrong. You even get a ErrorCode which is a enumeration which tells you wat exactly was the problem.

I don't call that a bug, I call it bad programming! You're the programmer, so you're responsible for catching expected errors. And is it so unthinkable that when you send something to a message queue, something does go wrong?

You say the exception message is useless, I say, you should have put the MessageQueue.Send and MessageQueue.(Begin)Receive in a try/catch block. And in the catch block you always know which queue raised the exception.

Erich Eichinger
11 Feb 2009
08:34 AM
Erich Eichinger

this might not be common knowledge: Did you ever look into the error page's html source using the browser's "View Source"? ASP.NET provides much more details in a html comment at the bottom of the page. It might be the case that you will find the queuename there

Ayende Rahien
11 Feb 2009
09:01 AM
Ayende Rahien

Dave,

Hence, the bug.

Dave
11 Feb 2009
09:18 AM
Dave

I was referring to your comment on Ryan:

This is an utterly useless error message, because when I look at it, I don't have enough context to know what caused the issue.

I meant to say, that you should never have seen this exception because it should have been caught by the MessageServiceBus and should have logged it. The bus than could have raised it's own exception which can be handled by the client program (website or desktop app) or not.

As I see it, the MessageServiceBus is build a component and queue exceptions should never float to the surface, other than as an InnerException of a MessageServiceBusException.

So the exception message provided by the framework is not useless. It's only useless to you because it's caught outside the service bus and you're using multiple queues. Basicly you get the exception at the wrong place, at the wrong time.

meisinger
11 Feb 2009
15:05 PM
meisinger

(it was on that day that i knew Dave did not like sugar in his coffee)

+1 for Dave

i have ran into the same issue with others code before (and yes that is a fancy way of saying my code) and have thought the same exact thing

if you don't like the error message, handle the exception and throw something meaningful

Ayende Rahien
11 Feb 2009
15:35 PM
Ayende Rahien

Dave,

The error message from the framework is useless. If I am using 5 queues in my app, it would save me some time to know which has failed.

The bug is that I am not adding additional information to the error, but I would rather not have to do that.

Chris Bolyard
11 Feb 2009
15:49 PM
Chris Bolyard

Check your MS DTC settings they are likely wrong.

Component Services -> My Computer -> MSDTC -> Security Configuration

Chris Bolyard
11 Feb 2009
15:55 PM
Chris Bolyard

Here is the technet listing

technet.microsoft.com/en-us/library/cc753620.aspx

Troubadour
12 Feb 2009
20:56 PM
Troubadour

BTW speaking about bugs. If I found a bug in Rhino ETL, how do I report it?

Ayende Rahien
13 Feb 2009
01:21 AM
Ayende Rahien

Troubadour,

groups.google.com/group/rhino-tools-dev/about

W.Meints
24 Feb 2009
14:11 PM
W.Meints

The exception looks more like: It is broken and I don't have a clue what actually happened.

Exceptionhandling is one of the more difficult topics in my opinion and Microsoft can learn quite a bit when I look at this specific instance ;)

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

No future posts left, oh my!

RECENT SERIES

  1. Recording (16):
    29 May 2025 - RavenDB's Upcoming Optimizations Deep Dive
  2. Webinar (6):
    27 May 2025 - RavenDB's Upcoming Optimizations Deep Dive
  3. RavenDB News (2):
    02 May 2025 - May 2025
  4. Production Postmortem (52):
    07 Apr 2025 - The race condition in the interlock
  5. RavenDB (13):
    02 Apr 2025 - .NET Aspire integration
View all series

RECENT COMMENTS

  • What a massive presentation! As a person who spent some time with a db written in .NET I can strongly relate to some points. ...
    By Scooletz on Recording: RavenDB's Upcoming Optimizations Deep Dive
  • I’d love to learn your thoughts on SPANN https://arxiv.org/abs/2111.08566 that with centroids and keeping the posting lists s...
    By Scooletz on Comparing DiskANN in SQL Server & HNSW in RavenDB
  • Joel, The DiskANN paper talks about it being viable for more than a billion vectors datasets.  In such a scenario, it would ...
    By Oren Eini on Comparing DiskANN in SQL Server & HNSW in RavenDB
  • Do you know why they chose DiskANN? These things are usually about tradeoffs but it seems DiskANN is just worse in every way.
    By Joel on Comparing DiskANN in SQL Server & HNSW in RavenDB
  • Scooletz, Yes, we look at other stuff. Most of those are _not_ allowing you to build themselves incrementally nor are they...
    By Oren Eini on Scaling HNSW in RavenDB: Optimizing for inadequate hardware

Syndication

Main feed Feed Stats
Comments feed   Comments Feed Stats
}