$all in stream browser not working?

I keep getting “Failure, stream does not exist”, even after reinstalling.
3.0.3 Windows

is it passing as %24 or $all?

Try curl with both.

Cheers,

Greg

None working.

C:>curl -i http://127.0.0.1:2113/streams/%24 -H “Accept: applicatio
n/json”
HTTP/1.1 503 Service Unavailable
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Connection: close
Content-Length: 326

Service Unavailable

Service Unavailable


HTTP Error 503. The service is unavailable.

C:>curl -i http://127.0.0.1:2113/streams/$all -H “Accept: applicati
on/json”
HTTP/1.1 503 Service Unavailable
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Connection: close
Content-Length: 326

Service Unavailable

Service Unavailable


HTTP Error 503. The service is unavailable.

And I have the Tcp packet frame out of bounds with connection closed. Catchup subscriber is working though, and saving events is working. Just can’t get to all streams.

%24all vs $all if I wasn't clear.

as in escaped vs not escaped

Send a log.

my guess is you don't have acls setup properly in windows.

This is one of the 32984329807432 reasons vnext will not support windows.

Wow, not support windows. Really? :confused: That was bad news.

I’m sending a log.

not for current incarnation that will keep windows support. In general
not worth it. Its huge amounts of code and frankly we are as example
now debugging your IIS issues that have approximately nothing to do
with ES

From logs

One node is getting this error: Im guessing the one you saw

[PID:06304:024 2015.05.21 16:53:24.880 ERROR TcpConnectionManager]
Closing connection 'internal-normal' [127.0.0.1:20492,
L127.0.0.1:2111, {b1ceead6-34fb-4608-aeb3-7eb3e2c1a103}] due to error.
Reason: Invalid TCP frame received. Error: Package size is out of
bounds: 542393671 (max: 67108864)..
[PID:06304:024 2015.05.21 16:53:24.880 INFO TcpConnection ] ES
TcpConnection closed [16:53:24.883: N127.0.0.1:20492, L127.0.0.1:2111,
{b1ceead6-34fb-4608-aeb3-7eb3e2c1a103}]:
Received bytes: 343, Sent bytes: 0

Thats because you are sending HTTP data to a TCP protocol port.

You can see that by reading this part:

[PID:06304:024 2015.05.21 16:53:24.880 ERROR LengthPrefixMessageF]
FRAMING ERROR! Data:
000000: 47 45 54 20 2F 77 65 62 2F 67 6F 73 73 69 70 2E | GET /web/gossip.
000016: 68 74 6D 20 48 54 54 50 2F 31 2E 31 0D 0A 48 6F | htm HTTP/1.1..Ho
000032: 73 74 3A 20 6C 6F 63 61 6C 68 6F 73 74 3A 32 31 | st: localhost:21
000048: 31 31 0D 0A 55 73 65 72 2D 41 67 65 6E 74 3A 20 | 11..User-Agent:
000064: 4D 6F 7A 69 6C 6C 61 2F 35 2E 30 20 28 57 69 6E | Mozilla/5.0 (Win
000080: 64 6F 77 73 20 4E 54 20 36 2E 31 3B 20 57 4F 57 | dows NT 6.1; WOW
000096: 36 34 3B 20 72 76 3A 33 35 2E 30 29 20 47 65 63 | 64; rv:35.0) Gec
000112: 6B 6F 2F 32 30 31 30 30 31 30 31 20 46 69 72 65 | ko/20100101 Fire
000128: 66 6F 78 2F 33 35 2E 30 0D 0A 41 63 63 65 70 74 | fox/35.0..Accept
000144: 3A 20 74 65 78 74 2F 68 74 6D 6C 2C 61 70 70 6C | : text/html,appl
000160: 69 63 61 74 69 6F 6E 2F 78 68 74 6D 6C 2B 78 6D | ication/xhtml+xm
000176: 6C 2C 61 70 70 6C 69 63 61 74 69 6F 6E 2F 78 6D | l,application/xm
000192: 6C 3B 71 3D 30 2E 39 2C 2A 2F 2A 3B 71 3D 30 2E | l;q=0.9,*/*;q=0.
000208: 38 0D 0A 41 63 63 65 70 74 2D 4C 61 6E 67 75 61 | 8..Accept-Langua
000224: 67 65 3A 20 65 6E 2D 55 53 2C 65 6E 3B 71 3D 30 | ge: en-US,en;q=0
000240: 2E 35 0D 0A 41 63 63 65 70 74 2D 45 6E 63 6F 64 | .5..Accept-Encod
000256: 69 6E 67 3A 20 67 7A 69 70 2C 20 64 65 66 6C 61 | ing: gzip, defla
000272: 74 65 0D 0A 43 6F 6F 6B 69 65 3A 20 41 62 70 2E | te..Cookie: Abp.
000288: 4C 6F 63 61 6C 69 7A 61 74 69 6F 6E 2E 43 75 6C | Localization.Cul
000304: 74 75 72 65 4E 61 6D 65 3D 65 6E 0D 0A 43 6F 6E | tureName=en..Con
000320: 6E 65 63 74 69 6F 6E 3A 20 6B 65 65 70 2D 61 6C | nection: keep-al
000336: 69 76 65 0D 0A 0D 0A | ive....

Its complaining it couldn't turn that into protobufs over TCP
properly. From reading the data it looks like misconfigured ports (a
node is sending gossip to a TCP running port not HTTP) likely also
causing your issue with a node being dead.

I am also seeing GETs with browser data.

I can dig through all your configs but it looks like you have
somewhere gossip seeds pointing to tcp ports (possibly amongst other
things)

Here is the one with a browser talking to a client API port

[PID:06304:024 2015.05.21 16:52:23.498 INFO TcpConnectionManager]
Connection 'internal-normal' [127.0.0.1:20409,
{d4d25d11-8c62-4b01-93b3-02314a4c2c6f}] closed: Success.
[PID:06304:007 2015.05.21 16:52:23.498 ERROR LengthPrefixMessageF]
FRAMING ERROR! Data:
000000: 47 45 54 20 2F 66 61 76 69 63 6F 6E 2E 69 63 6F | GET /favicon.ico
000016: 20 48 54 54 50 2F 31 2E 31 0D 0A 48 6F 73 74 3A | HTTP/1.1..Host:
000032: 20 6C 6F 63 61 6C 68 6F 73 74 3A 32 31 31 31 0D | localhost:2111.
000048: 0A 55 73 65 72 2D 41 67 65 6E 74 3A 20 4D 6F 7A | .User-Agent: Moz
000064: 69 6C 6C 61 2F 35 2E 30 20 28 57 69 6E 64 6F 77 | illa/5.0 (Window
000080: 73 20 4E 54 20 36 2E 31 3B 20 57 4F 57 36 34 3B | s NT 6.1; WOW64;
000096: 20 72 76 3A 33 35 2E 30 29 20 47 65 63 6B 6F 2F | rv:35.0) Gecko/
000112: 32 30 31 30 30 31 30 31 20 46 69 72 65 66 6F 78 | 20100101 Firefox
000128: 2F 33 35 2E 30 0D 0A 41 63 63 65 70 74 3A 20 74 | /35.0..Accept: t
000144: 65 78 74 2F 68 74 6D 6C 2C 61 70 70 6C 69 63 61 | ext/html,applica
000160: 74 69 6F 6E 2F 78 68 74 6D 6C 2B 78 6D 6C 2C 61 | tion/xhtml+xml,a
000176: 70 70 6C 69 63 61 74 69 6F 6E 2F 78 6D 6C 3B 71 | pplication/xml;q
000192: 3D 30 2E 39 2C 2A 2F 2A 3B 71 3D 30 2E 38 0D 0A | =0.9,*/*;q=0.8..
000208: 41 63 63 65 70 74 2D 4C 61 6E 67 75 61 67 65 3A | Accept-Language:
000224: 20 65 6E 2D 55 53 2C 65 6E 3B 71 3D 30 2E 35 0D | en-US,en;q=0.5.
000240: 0A 41 63 63 65 70 74 2D 45 6E 63 6F 64 69 6E 67 | .Accept-Encoding
000256: 3A 20 67 7A 69 70 2C 20 64 65 66 6C 61 74 65 0D | : gzip, deflate.
000272: 0A 43 6F 6F 6B 69 65 3A 20 41 62 70 2E 4C 6F 63 | .Cookie: Abp.Loc
000288: 61 6C 69 7A 61 74 69 6F 6E 2E 43 75 6C 74 75 72 | alization.Cultur
000304: 65 4E 61 6D 65 3D 65 6E 0D 0A 43 6F 6E 6E 65 63 | eName=en..Connec
000320: 74 69 6F 6E 3A 20 6B 65 65 70 2D 61 6C 69 76 65 | tion: keep-alive
000336: 0D 0A 0D 0A | ....

The problem is solved. IIS is the culprit.

I noticed after

C:\Windows\system32>netsh http add urlacl url=http://+:2114/ user=everyone
URL reservation successfully added
C:\Windows\system32>netsh http add urlacl url=http://+:3114/ user=everyone
URL reservation successfully added

that
those nodes then returned Service Unavailable. I had just succeeded to get the .$all to work with node 1114, so I had to try
C:\Windows\system32>netsh http add urlacl url=http://+:1114/ user=everyone
URL reservation successfully added
on it too. Of course that node immediately turned into Service Unavailable also…

So…:
netsh http show urlacl
and netsh http delete url=http://+:[port]
on all of them, and problem was solved.

Thanks alot Greg for help over email!

[on all of those added]

I had a bunch that was added and didn’t need to remove all to get it to work again, so you might have to put some back in again, if you get this problem.

I’ve seen on several occasions (not with Event Store, just HTTP on windows generally) these get corrupted and need removing and re-adding otherwise everything returns 503. No idea why.

so with that writing on the wall - giving the choice (which we are lucky enough to have right now) we’ll choose Linux as a host, over Windows.

Should that be general guidance?

In general linux is easier to deal with (even with mono) and tends to
have less "odd" issues.

That said EventStore in its current incarnation will not be losing
support, its more in future things being discussed would be posix
only.

Today, when running the same cluster, and kicking up the catch-up subscriber, all of the events from yesterday were gone. What’s up with that? Okay, mostly they were stats collected events, but quite some of other events too, that I had tossed in.

How can I check what’s actually in the db in a case like this?

The stream browser is working again after some tricks with netsh urlacl, so I could see the events there.

But the catchup subscriber isn’t picking them up. I have it print them all out in a console window, but only the events from today showed up.

curl -i http://127.0.0.1:2114/streams/$all -H "Accept: application/json"

gives 307 Temporary redirect
is that supposed to be so?

Did it redirect to /streams/%24all? (just saying a "redirect" without
including the redirected link isn't very helpful)

Ah, sorry, yes a redirect link to 1114. So, I tried same for that one but got a timeout.
Then I noticed all urlacls that I had deleted were back. Does ES add them upon start?
Anyway, keeps being weird. Got 401, removed the urlacl, added it again, still 401… I guess I’ll leave it at that.

But not getting all the events in the catchup subscriber, that must be something else, no? Have subscribetoall from Position.Start. There were plenty of events from yesterday, just didn’t show up, but I see them in the streambrowser (after defeating IIS).