"js1" projection error everywhere by my dev box

I’ve seen this on multiple threads, and I’m sure it’s an easy fix, I just cannot figure it out.

Anytime I create even the simplest of projections, it is immediately faulted. I’m on a fresh install of ubuntu-13.10-server-amd64 with fresh built mono 3.2.5.

The same problem occurs on a 32-bit windows server… I’m thinking that one is probably the 32-bit 64-bit mismatch because it works flawlessly on my local computer which is 64-bit… but man I just cannot get this to run outside of my sandbox dev machine :frowning:

On the linux box, event store is located at “/usr/local/eventstore-2.0.1” and this is my LD_LIBRARY_PATH:

[hostname]:~$ echo $LD_LIBRARY_PATH
/usr/local/eventstore-2.0.1:

``

here’s how I’m running it:

sudo mono-sgen /usr/local/eventstore-2.0.1/EventStore.SingleNode.exe --run-projections=ALL --db /home/cray/estest --ip 10.255.0.84

``

and here is the log file, with the projection error at the bottom

[PID:02145:001 2013.12.06 21:23:36.905 INFO ProgramBase`1 ]

ES VERSION: 2.0.1.0 (master/549d96219418572625b2f68d46ec809d9e86f7df, Thu, 1 Aug 2013 18:26:54 +0100)

OS: Unknown (Unix 3.11.0.12)

RUNTIME: 3.2.5 (tarball Fri Dec 6 13:56:32 CST 2013) (64-bit)

GC: 2 GENERATIONS

LOGS: /home/cray/estest-logs

SHOW HELP: False ()

SHOW VERSION: False ()

LOGS DIR: ()

CONFIGS: ()

DEFINES: ()

IP: 10.255.0.84 (–ip from command line)

TCP PORT: 1113 ()

SECURE TCP PORT: 0 ()

HTTP PORT: 2113 ()

STATS PERIOD SEC: 30 ()

CACHED CHUNKS: -1 ()

CHUNKS CACHE SIZE: 536871424 ()

MIN FLUSH DELAY MS: 2 ()

DB PATH: /home/cray/estest (–db from command line)

SKIP DB VERIFY: False ()

RUN PROJECTIONS: All (–run-projections from command line)

PROJECTION THREADS: 3 ()

WORKER THREADS: 5 ()

HTTP PREFIXES: ()

ENABLE TRUSTED AUTH: False ()

CERTIFICATE STORE: ()

CERTIFICATE NAME: ()

CERTIFICATE FILE: ()

CERTIFICATE PASSWORD: ()

PREPARE TIMEOUT MS: 2000 ()

COMMIT TIMEOUT MS: 2000 ()

FORCE: False ()

[PID:02145:001 2013.12.06 21:23:36.937 INFO ProgramBase`1 ]

DATABASE: /home/cray/estest

WRITER CHECKPOINT: 0 (0x0)

CHASER CHECKPOINT: 0 (0x0)

EPOCH CHECKPOINT: -1 (0xFFFFFFFFFFFFFFFF)

TRUNCATE CHECKPOINT: -1 (0xFFFFFFFFFFFFFFFF)

[PID:02145:001 2013.12.06 21:23:37.062 TRACE MessageHierarchy ] MessageHierarchy initialization took 00:00:00.0999355.

[PID:02145:001 2013.12.06 21:23:37.136 TRACE TFChunk ] CACHED TFChunk #0-0 (chunk-000000.000000) in 00:00:00.0017639.

[PID:02145:001 2013.12.06 21:23:37.237 INFO MiniWeb ] Starting MiniWeb for /web/es/js/projections ==> /usr/local/eventstore-2.0.1/singlenode-web/js/projections

[PID:02145:001 2013.12.06 21:23:37.237 INFO MiniWeb ] Starting MiniWeb for /web/es/js/projections/v8/Prelude ==> /usr/local/eventstore-2.0.1/Prelude

[PID:02145:001 2013.12.06 21:23:37.237 INFO MiniWeb ] Starting MiniWeb for /web/es/js/projections/resources ==> /usr/local/eventstore-2.0.1/web-resources/js

[PID:02145:001 2013.12.06 21:23:37.238 TRACE MiniWeb ] Binding MiniWeb to /web/es/js/projections/{*remaining_path}

[PID:02145:001 2013.12.06 21:23:37.238 TRACE MiniWeb ] Binding MiniWeb to /web/es/js/projections/v8/Prelude/{*remaining_path}

[PID:02145:001 2013.12.06 21:23:37.239 TRACE MiniWeb ] Binding MiniWeb to /web/es/js/projections/resources/{*remaining_path}

[PID:02145:001 2013.12.06 21:23:37.241 INFO MiniWeb ] Starting MiniWeb for /web ==> /usr/local/eventstore-2.0.1/singlenode-web

[PID:02145:001 2013.12.06 21:23:37.241 INFO MiniWeb ] Starting MiniWeb for /web/es ==> /usr/local/eventstore-2.0.1/es-common-web

[PID:02145:001 2013.12.06 21:23:37.241 TRACE MiniWeb ] Binding MiniWeb to /web/{*remaining_path}

[PID:02145:001 2013.12.06 21:23:37.241 TRACE MiniWeb ] Binding MiniWeb to /web/es/{*remaining_path}

[PID:02145:001 2013.12.06 21:23:37.242 INFO MiniWeb ] Starting MiniWeb for /web/users ==> /usr/local/eventstore-2.0.1/Users/web

[PID:02145:001 2013.12.06 21:23:37.242 TRACE MiniWeb ] Binding MiniWeb to /web/users/{*remaining_path}

[PID:02145:009 2013.12.06 21:23:37.260 INFO SingleVNodeControlle] ========== [10.255.0.84:2113] SYSTEM INIT…

[PID:02145:007 2013.12.06 21:23:37.288 INFO ReadIndex ] TableIndex initialization…

[PID:02145:007 2013.12.06 21:23:37.298 INFO ReadIndex ] ReadIndex building…

[PID:02145:007 2013.12.06 21:23:37.299 DEBUG ReadIndex ] ReadIndex Rebuilding Done: total processed 0 records, time elapsed: 00:00:00.0004930.

[PID:02145:009 2013.12.06 21:23:37.306 INFO TcpServerListener ] Starting Normal TCP listening on TCP endpoint: 10.255.0.84:1113.

[PID:02145:009 2013.12.06 21:23:37.322 INFO HttpAsyncServer ] Starting HTTP server on [http://10.255.0.84:2113/]…

[PID:02145:009 2013.12.06 21:23:37.325 INFO HttpAsyncServer ] HTTP server is up and listening on [http://10.255.0.84:2113/]

[PID:02145:009 2013.12.06 21:23:37.338 TRACE QueuedHandlerAutoRes] SLOW QUEUE MSG [MainQueue]: SystemInit - 82ms. Q: 0/4.

[PID:02145:009 2013.12.06 21:23:37.340 INFO SingleVNodeControlle] ========== [10.255.0.84:2113] SYSTEM START…

[PID:02145:009 2013.12.06 21:23:37.344 INFO SingleVNodeControlle] ========== [10.255.0.84:2113] PRE-MASTER STATE, WAITING FOR CHASER TO CATCH UP…

[PID:02145:009 2013.12.06 21:23:37.346 INFO SingleVNodeControlle] ========== [10.255.0.84:2113] IS WORKING!!! SPARTA!!!

[PID:02145:011 2013.12.06 21:23:37.408 INFO ProjectionManager ] Projection manager is initializing from the empty $projections-$all stream

[PID:02145:007 2013.12.06 21:23:37.467 DEBUG EpochManager ] === Writing E0@0:{bf679d4b-470d-4e82-a7a2-11843b7fe0d5} (previous epoch at -1).

[PID:02145:007 2013.12.06 21:23:37.474 DEBUG EpochManager ] === Update Last Epoch E0@0:{bf679d4b-470d-4e82-a7a2-11843b7fe0d5} (previous epoch at -1).

[PID:02145:010 2013.12.06 21:23:37.542 TRACE MonitoringService ] Created stats stream ‘$stats-10.255.0.84:2113’, code = Success

[PID:02145:009 2013.12.06 21:23:37.570 INFO UserManagementServic] ‘admin’ user account has been created

[PID:02145:011 2013.12.06 21:23:37.627 INFO ProjectionManager ] ‘$stream_by_category’ projection source has been written

[PID:02145:011 2013.12.06 21:23:37.627 INFO ProjectionManager ] ‘$streams’ projection source has been written

[PID:02145:011 2013.12.06 21:23:37.628 INFO ProjectionManager ] ‘$by_category’ projection source has been written

[PID:02145:011 2013.12.06 21:23:37.628 INFO ProjectionManager ] ‘$users’ projection source has been written

[PID:02145:011 2013.12.06 21:23:37.628 INFO ProjectionManager ] ‘$by_event_type’ projection source has been written

[PID:02145:014 2013.12.06 21:23:37.672 TRACE EventReorderingReade] Creating an event distribution point at ‘C:0/P:-1’

[PID:02145:013 2013.12.06 21:23:37.672 TRACE EventReorderingReade] Creating an event distribution point at 'C:0/P:-1; $UserCreated: -1; ’

[PID:02145:012 2013.12.06 21:23:37.672 TRACE EventReorderingReade] Creating an event distribution point at ‘C:0/P:-1’

[PID:02145:014 2013.12.06 21:23:37.699 TRACE ProjectionCoreServic] The ‘d2cc9fe8-09aa-466b-bda0-718837a20ffd’ projection subscribed to the ‘333f361b-738f-40d0-9aeb-b147b7391bff’ distribution point

[PID:02145:012 2013.12.06 21:23:37.699 TRACE ProjectionCoreServic] The ‘a7d74959-fb34-4ee8-b757-5a1accb00f59’ projection subscribed to the ‘70ef3bb0-42c8-4b24-990b-a69a1f7c1453’ distribution point

[PID:02145:013 2013.12.06 21:23:37.699 TRACE ProjectionCoreServic] The ‘1068c4bb-802f-43a1-87e2-7f97c7005c21’ projection subscribed to the ‘01806f1f-e7b5-4252-95bb-1da1ddf84c42’ distribution point

[PID:02145:012 2013.12.06 21:23:37.721 TRACE InMemoryBus ] SLOW BUS MSG [bus]: Subscribe - 48ms. Handler: EventReaderCoreService.

[PID:02145:013 2013.12.06 21:23:37.721 TRACE InMemoryBus ] SLOW BUS MSG [bus]: Subscribe - 48ms. Handler: EventReaderCoreService.

[PID:02145:014 2013.12.06 21:23:37.721 TRACE InMemoryBus ] SLOW BUS MSG [bus]: Subscribe - 52ms. Handler: EventReaderCoreService.

[PID:02145:013 2013.12.06 21:23:37.721 TRACE QueuedHandlerAutoRes] SLOW QUEUE MSG [Projection Core #1]: Subscribe - 66ms. Q: 7/12.

[PID:02145:014 2013.12.06 21:23:37.721 TRACE QueuedHandlerAutoRes] SLOW QUEUE MSG [Projection Core #2]: Subscribe - 71ms. Q: 4/7.

[PID:02145:012 2013.12.06 21:23:37.721 TRACE QueuedHandlerAutoRes] SLOW QUEUE MSG [Projection Core #0]: Subscribe - 69ms. Q: 5/8.

[PID:02145:012 2013.12.06 21:23:37.724 TRACE EventReorderingReade] Creating an event distribution point at ‘C:0/P:-1’

[PID:02145:012 2013.12.06 21:23:37.724 TRACE ProjectionCoreServic] The ‘dbabcf58-10f1-4eca-a870-7cd9b502e021’ projection subscribed to the ‘d0c6318f-a890-4e06-93b1-22efa4e03156’ distribution point

[PID:02145:013 2013.12.06 21:23:37.724 TRACE EventReorderingReade] Creating an event distribution point at ‘C:0/P:-1’

[PID:02145:013 2013.12.06 21:23:37.724 TRACE ProjectionCoreServic] The ‘809726c5-642d-42b3-b97e-8cb253c2b4ce’ projection subscribed to the ‘c7a0ad8b-9440-480b-8c32-466d95a3417c’ distribution point

[PID:02145:013 2013.12.06 21:23:37.752 TRACE HeadingEventReader ] The ‘809726c5-642d-42b3-b97e-8cb253c2b4ce’ subscription has joined the heading distribution point at ‘2172’

[PID:02145:014 2013.12.06 21:23:37.752 TRACE HeadingEventReader ] The ‘d2cc9fe8-09aa-466b-bda0-718837a20ffd’ subscription has joined the heading distribution point at ‘2172’

[PID:02145:012 2013.12.06 21:23:37.752 TRACE HeadingEventReader ] The ‘a7d74959-fb34-4ee8-b757-5a1accb00f59’ subscription has joined the heading distribution point at ‘2172’

[PID:02145:014 2013.12.06 21:23:37.753 TRACE HeadingEventReader ] The ‘d2cc9fe8-09aa-466b-bda0-718837a20ffd’ projection subscribed to the ‘c342651e-28b5-40d0-947a-642279ad9e03’ heading distribution point

[PID:02145:013 2013.12.06 21:23:37.753 TRACE HeadingEventReader ] The ‘809726c5-642d-42b3-b97e-8cb253c2b4ce’ projection subscribed to the ‘c0974d62-159c-4c8c-80f8-4e2a172a2b63’ heading distribution point

[PID:02145:012 2013.12.06 21:23:37.754 TRACE HeadingEventReader ] The ‘a7d74959-fb34-4ee8-b757-5a1accb00f59’ projection subscribed to the ‘697714a3-7ee2-475e-97d5-a9b872dba2e4’ heading distribution point

[PID:02145:012 2013.12.06 21:23:37.756 TRACE HeadingEventReader ] The ‘dbabcf58-10f1-4eca-a870-7cd9b502e021’ subscription has joined the heading distribution point at ‘2172’

[PID:02145:012 2013.12.06 21:23:37.756 TRACE HeadingEventReader ] The ‘dbabcf58-10f1-4eca-a870-7cd9b502e021’ projection subscribed to the ‘697714a3-7ee2-475e-97d5-a9b872dba2e4’ heading distribution point

[PID:02145:013 2013.12.06 21:23:37.769 TRACE HeadingEventReader ] The ‘809726c5-642d-42b3-b97e-8cb253c2b4ce’ subscription has unsubscribed from the ‘c0974d62-159c-4c8c-80f8-4e2a172a2b63’ heading distribution point

[PID:02145:012 2013.12.06 21:23:37.769 TRACE HeadingEventReader ] The ‘a7d74959-fb34-4ee8-b757-5a1accb00f59’ subscription has unsubscribed from the ‘697714a3-7ee2-475e-97d5-a9b872dba2e4’ heading distribution point

[PID:02145:014 2013.12.06 21:23:37.769 TRACE HeadingEventReader ] The ‘d2cc9fe8-09aa-466b-bda0-718837a20ffd’ subscription has unsubscribed from the ‘c342651e-28b5-40d0-947a-642279ad9e03’ heading distribution point

[PID:02145:014 2013.12.06 21:23:37.770 TRACE EventReorderingReade] Creating an event distribution point at ‘C:7832/P:6493’

[PID:02145:014 2013.12.06 21:23:37.770 TRACE ProjectionCoreServic] The ‘d2cc9fe8-09aa-466b-bda0-718837a20ffd’ subscription has unsubscribed (reader: 759c7fce-31a1-4b08-8745-b953221f4943)

[PID:02145:013 2013.12.06 21:23:37.771 TRACE EventReorderingReade] Creating an event distribution point at ‘C:7832/P:6493’

[PID:02145:012 2013.12.06 21:23:37.771 TRACE EventReorderingReade] Creating an event distribution point at ‘C:7832/P:6493’

[PID:02145:013 2013.12.06 21:23:37.771 TRACE ProjectionCoreServic] The ‘809726c5-642d-42b3-b97e-8cb253c2b4ce’ subscription has unsubscribed (reader: abc43c1c-98be-4ccf-810c-b0855da20ae9)

[PID:02145:012 2013.12.06 21:23:37.771 TRACE ProjectionCoreServic] The ‘a7d74959-fb34-4ee8-b757-5a1accb00f59’ subscription has unsubscribed (reader: bb521263-26bd-4c0a-b2c8-475253923a44)

[PID:02145:012 2013.12.06 21:23:37.772 TRACE HeadingEventReader ] The ‘dbabcf58-10f1-4eca-a870-7cd9b502e021’ subscription has unsubscribed from the ‘697714a3-7ee2-475e-97d5-a9b872dba2e4’ heading distribution point

[PID:02145:012 2013.12.06 21:23:37.772 TRACE EventReorderingReade] Creating an event distribution point at ‘C:7832/P:6493’

[PID:02145:012 2013.12.06 21:23:37.772 TRACE ProjectionCoreServic] The ‘dbabcf58-10f1-4eca-a870-7cd9b502e021’ subscription has unsubscribed (reader: 4af90f4c-60b0-4f88-b148-fbd1b8bd757a)

[PID:02145:013 2013.12.06 21:23:37.987 TRACE HeadingEventReader ] The ‘1068c4bb-802f-43a1-87e2-7f97c7005c21’ subscription has joined the heading distribution point at ‘7584’

[PID:02145:013 2013.12.06 21:23:37.987 TRACE HeadingEventReader ] The ‘1068c4bb-802f-43a1-87e2-7f97c7005c21’ projection subscribed to the ‘c0974d62-159c-4c8c-80f8-4e2a172a2b63’ heading distribution point

[PID:02145:013 2013.12.06 21:23:37.987 TRACE ProjectionCoreServic] The ‘1068c4bb-802f-43a1-87e2-7f97c7005c21’ is subscribing to the heading distribution point with TF-EOF marker event at ‘7584’

[PID:02145:014 2013.12.06 21:23:42.586 ERROR ProjectionManager ] The ‘dispatch-to-all’ projection faulted due to 'Cannot create a projection state handler.

Handler type: JS

Query:

fromAll().when({$any : function(s,e){if (e.metadata !== null){if(e.metadata.DispatchToAll)linkTo(‘alldevicenotifications’, e);}}})

Message:

js1’

System.DllNotFoundException: js1

at (wrapper managed-to-native) EventStore.Projections.Core.v8.Js1:CompilePrelude (string,string,EventStore.Projections.Core.v8.Js1/LoadModuleDelegate,EventStore.Projections.Core.v8.Js1/EnterCancellableRegionDelegate,EventStore.Projections.Core.v8.Js1/ExitCancellableRegionDelegate,EventStore.Projections.Core.v8.Js1/LogDelegate)

at EventStore.Projections.Core.v8.PreludeScript.CompileScript (System.String script, System.String fileName) [0x00000] in :0

at EventStore.Projections.Core.v8.PreludeScript…ctor (System.String script, System.String fileName, System.Func2 getModuleSourceAndFileName, System.Action2 cancelCallbackFactory, System.Action`1 logger) [0x00000] in :0

at EventStore.Projections.Core.Services.v8.V8ProjectionStateHandler…ctor (System.String preludeName, System.String querySource, System.Func2 getModuleSource, System.Action1 logger, System.Action`2 cancelCallbackFactory) [0x00000] in :0

at EventStore.Projections.Core.Services.v8.DefaultV8ProjectionStateHandler…ctor (System.String query, System.Action1 logger, System.Action2 cancelCallbackFactory) [0x00000] in :0

at EventStore.Projections.Core.Services.Management.ProjectionStateHandlerFactory.Create (System.String factoryType, System.String source, System.Action2 cancelCallbackFactory, System.Action1 logger) [0x00000] in :0

at EventStore.Projections.Core.Services.Management.ManagedProjection+c__AnonStoreyE.<>m__16 () [0x00000] in :0

[PID:02145:011 2013.12.06 21:23:42.590 ERROR ProjectionManager ] The ‘dispatch-to-all’ projection faulted due to ‘js1’

[PID:02145:011 2013.12.06 21:23:42.599 INFO ProjectionManager ] ‘dispatch-to-all’ projection source has been written

Thanks in advance for any help anyone can provide.

Chris

The binaries we supply are 64 bit - js1 is all native code (including v8). The .NET code is built for any CPU though.

Hmm, so it stands to reason then that the architecture doesn’t matter? Therefore it should work on all three: my 64-bit windows 7 dev box, 32-bit windows 2008 server, and this 64-bit Ubuntu 13.10 server. And yet… The 64-bit windows 7 dev is the only one that will run projections.

For .net code architecture does not matter, but for native code it is x64. .net code loads native code that should match your architecture.

Ahh ok so that explains the 32-bit windows error ‘load … Incorrect format’. The linux error just looks like it can’t find the path to the library. I exported that variable like the docs said

I’ll add a note to the documentation.

Are both libjs1.so and libv8.so present in the exported path?

Is ldconfig able to find them as documented here? http://www.mono-project.com/DllNotFoundException

Thanks,

James

Ok that link brought me to the solution. I had to create a .conf file here: /etc/ld.so.conf.d/es.conf (es.conf being the file I added)

contents, a single line:

/usr/local/eventstore-2.0.1

``

That would obviously be wherever you installed the event store.

then run ldconfig -v as root

sudo ldconfig -v

``

the -v flag is for verbose, and it will print out all of the libraries. There should be some lines near the top:

/usr/local/eventstore-2.0.1:

libjs1.so -> libjs1.so

libv8.so -> libv8.so

``

and running ldconfig -p | grep libv8 finally produces a result:

ldconfig -p | grep libv8

    libv8.so (libc6,x86-64) => /usr/local/eventstore-2.0.1/libv8.so

``

restart eventstore, and projections now work peachy.

Thanks for your help!

Chris

Thanks, was this with 13.10? Perhaps there’s something different with that. I’ll turn these instructions into a wiki entry. On 12.04 exporting LD_LIBRARY_PATH is sufficient on my boxes at least!

Yes, 13.10