4.6 Haystack Plus Driver Issue


#1

Im just having a connectivity issue on 4.6.96.28, essentially I have replicated the setup in 4.4 and all works well, however when setting up in 4.6 im receiving the below error. I added an obix network just to test the basic authentication which works fine so that leads me to believe the authentication is working fine.

  • basic authentication setup and tested

  • replicated obix to test basic authentication

  • Appears to be isolated to 4.6 as i have replicated the identical setup in 4.4

authentication error
2


#2

driver setup
1


#3

I do not know how obix authenticates but you will not be able to authenticate with basic auth in 4.6 for haystack connections anymore and will need to switch to digest.


#4

thanks @kodaroJonathan the digest scheme sorted the connection issue however now i get the following when running read(haystackConn and dis== “Haystack Conn”).kodaroHaystackImport

the query is correct do you have any direction for this? thanks

axon::EvalErr: Func failed: haystackCall(Obj conn,Str op,Obj req,Bool checked); args: (MapDict,Str,Dict1)
sys::IOErr: Bad HTTP response 500 Async Timeout [kodaroHaystackAxon.trio:196]
=== Axon Trace ===
kodaroHaystackImport (kodaroHaystackAxon.trio:196)

=== Fantom Trace ===
axon::EvalErr: Func failed: haystackCall(Obj conn,Str op,Obj req,Bool checked); args: (MapDict,Str,Dict1)
sys::IOErr: Bad HTTP response 500 Async Timeout [kodaroHaystackAxon.trio:196]
axon::FantomFn.callx (FantomFn.fan:144)
axon::Fn.callLazy (Fn.fan:71)
axon::Call.eval (Call.fan:39)
axon::Def.eval (Def.fan:32)
axon::Block.eval (Block.fan:33)
fan.sys.List.each (List.java:588)
axon::Block.eval (Block.fan:33)
axon::Fn.doCall (Fn.fan:101)
axon::AxonContext.doCall (AxonContext.fan:145)
axon::Fn.callx (Fn.fan:94)
axon::Fn.callLazy (Fn.fan:71)
axon::Call.eval (Call.fan:39)
skyarcd::Context.evalOrReadAll (Context.fan:95)
skyarcd::SysLib.eval (SysLib.fan:91)
skyarcd::ApiWebMod.evalAllExpr (ApiMod.fan:295)
skyarcd::ApiWebMod.onEvalAll (ApiMod.fan:265)
fan.sys.List.each (List.java:588)
haystack::GbGrid.each (GridBuilder.fan:350)
skyarcd::ApiWebMod.onEvalAll (ApiMod.fan:261)
skyarcd::ApiWebMod.onService (ApiMod.fan:115)
skyarcd::HttpRootMod.onService (HttpMod.fan:208)
wisp::WispActor.process (WispActor.fan:74)
wisp::WispActor.receive (WispActor.fan:38)
concurrent::Actor._dispatch (Actor.java:234)
concurrent::Actor._work (Actor.java:204)
1 More…
Cause:
sys::IOErr: Bad HTTP response 500 Async Timeout
concurrent::Future.get (Future.java:118)
connExt::ConnActor.sendSync (ConnActor.fan:120)
haystackExt::HaystackLib.toResult (HaystackLib.fan:350)
haystackExt::HaystackLib.haystackCall (HaystackLib.fan:59)
haystackExt::HaystackLib.haystackCall (HaystackLib.fan)
java.lang.reflect.Method.invoke (Unknown)
fan.sys.Method.invoke (Method.java:573)
fan.sys.Method$MethodFunc.callList (Method.java:212)
fan.sys.Method.callList (Method.java:138)
axon::FantomFn.doCall (FantomFn.fan:152)
axon::AxonContext.doCall (AxonContext.fan:145)
axon::FantomFn.callx (FantomFn.fan:140)
axon::Fn.callLazy (Fn.fan:71)
axon::Call.eval (Call.fan:39)
axon::Def.eval (Def.fan:32)
axon::Block.eval (Block.fan:33)
fan.sys.List.each (List.java:588)
axon::Block.eval (Block.fan:33)
axon::Fn.doCall (Fn.fan:101)
axon::AxonContext.doCall (AxonContext.fan:145)
axon::Fn.callx (Fn.fan:94)
axon::Fn.callLazy (Fn.fan:71)
axon::Call.eval (Call.fan:39)
skyarcd::Context.evalOrReadAll (Context.fan:95)
skyarcd::SysLib.eval (SysLib.fan:91)
13 More…
sys::IOErr: Bad HTTP response 500 Async Timeout
skyarcd::Client.doCall (Client.fan:250)
skyarcd::Client.call (Client.fan:222)
haystackExt::HaystackConn.call (HaystackConn.fan:108)
haystackExt::HaystackConn.onCall (HaystackConn.fan:102)
haystackExt::HaystackConn.receive (HaystackConn.fan:37)
connExt::ConnActor.receive (ConnActor.fan:181)
concurrent::Actor._dispatch (Actor.java:234)
concurrent::Actor._work (Actor.java:204)
concurrent::ThreadPool$Worker.run (ThreadPool.java:262)


#5

You may need to increase the ops timeout depending on the size of the station you are attempting to import. I’d recommend bumping it up to 1 minute to start.

image


#6

thanks jonathan…baby steps :slight_smile: i know get the below error thrown

org.projecthaystack.client.CallErrException: haystack::UnknownRecErr: ALBERT53-13e0a
at org.projecthaystack.client.HClient.call(HClient.java:532)
at org.projecthaystack.client.HClient.hisWrite(HClient.java:501)
at com.kodaro.haystack.BHaystackDevice.hisWrite(BHaystackDevice.java:554)
at com.kodaro.haystack.export.BHaystackExport.hisWrite(BHaystackExport.java:443)
at com.kodaro.haystack.export.BHaystackHierarchyExport.performExport(BHaystackHierarchyExport.java:740)
at com.kodaro.haystack.message.HierarchyExportMessage.execute(HierarchyExportMessage.java:47)
at com.kodaro.haystack.message.HierarchyExportMessage.run(HierarchyExportMessage.java:37)
at javax.baja.util.ThreadPoolWorker$WorkerThread.run(ThreadPoolWorker.java:279)


#7

i also have tried the read function and get the below error with a large time out set

axon::EvalErr: Func failed: haystackCall(Obj conn,Str op,Obj req,Bool checked); args: (MapDict,Str,Dict1)
sys::TimeoutErr: Future.get timed out [kodaroHaystackAxon.trio:196]
=== Axon Trace ===
kodaroHaystackImport (kodaroHaystackAxon.trio:196)

=== Fantom Trace ===
axon::EvalErr: Func failed: haystackCall(Obj conn,Str op,Obj req,Bool checked); args: (MapDict,Str,Dict1)
sys::TimeoutErr: Future.get timed out [kodaroHaystackAxon.trio:196]
axon::FantomFn.callx (FantomFn.fan:144)
axon::Fn.callLazy (Fn.fan:71)
axon::Call.eval (Call.fan:39)
axon::Def.eval (Def.fan:32)
axon::Block.eval (Block.fan:33)
fan.sys.List.each (List.java:588)
axon::Block.eval (Block.fan:33)
axon::Fn.doCall (Fn.fan:101)
axon::AxonContext.doCall (AxonContext.fan:145)
axon::Fn.callx (Fn.fan:94)
axon::Fn.callLazy (Fn.fan:71)
axon::Call.eval (Call.fan:39)
skyarcd::Context.evalOrReadAll (Context.fan:95)
skyarcd::SysLib.eval (SysLib.fan:91)
skyarcd::ApiWebMod.evalAllExpr (ApiMod.fan:295)
skyarcd::ApiWebMod.onEvalAll (ApiMod.fan:265)
fan.sys.List.each (List.java:588)
haystack::GbGrid.each (GridBuilder.fan:350)
skyarcd::ApiWebMod.onEvalAll (ApiMod.fan:261)
skyarcd::ApiWebMod.onService (ApiMod.fan:115)
skyarcd::HttpRootMod.onService (HttpMod.fan:208)
wisp::WispActor.process (WispActor.fan:74)
wisp::WispActor.receive (WispActor.fan:38)
concurrent::Actor._dispatch (Actor.java:234)
concurrent::Actor._work (Actor.java:204)
1 More…
Cause:
sys::TimeoutErr: Future.get timed out
concurrent::Future.get (Future.java:108)
connExt::ConnActor.sendSync (ConnActor.fan:120)
haystackExt::HaystackLib.toResult (HaystackLib.fan:350)
haystackExt::HaystackLib.haystackCall (HaystackLib.fan:59)
haystackExt::HaystackLib.haystackCall (HaystackLib.fan)
java.lang.reflect.Method.invoke (Unknown)
fan.sys.Method.invoke (Method.java:573)
fan.sys.Method$MethodFunc.callList (Method.java:212)
fan.sys.Method.callList (Method.java:138)
axon::FantomFn.doCall (FantomFn.fan:152)
axon::AxonContext.doCall (AxonContext.fan:145)
axon::FantomFn.callx (FantomFn.fan:140)
axon::Fn.callLazy (Fn.fan:71)
axon::Call.eval (Call.fan:39)
axon::Def.eval (Def.fan:32)
axon::Block.eval (Block.fan:33)
fan.sys.List.each (List.java:588)
axon::Block.eval (Block.fan:33)
axon::Fn.doCall (Fn.fan:101)
axon::AxonContext.doCall (AxonContext.fan:145)
axon::Fn.callx (Fn.fan:94)
axon::Fn.callLazy (Fn.fan:71)
axon::Call.eval (Call.fan:39)
skyarcd::Context.evalOrReadAll (Context.fan:95)
skyarcd::SysLib.eval (SysLib.fan:91)
12 More…


#8

on the skysparks side the sytem builds site and equip but does not build points…


#9

Have all the references for the points been created to the equipment using equipRef? Just as a sanity check as well, what version of driver are you using?


#10

yep i have checked that and also removed any custom refs, im using the latest version 1.0.17.8


#11

Re-reading that stack trace, I believe this is a timeout that is now happening on the skyspark side. You will need to increase the actor timeout for the connection.

Here are some links on the issue from the skyspark forum.
https://skyfoundry.com/forum/topic/656
https://skyfoundry.com/forum/topic/3214


#12

thanks however i am now using the heirachy push i have had more success with this im getting a number of the equipment and points come through howeveer i know get the below from the application director.

javax.baja.util.ThreadPoolWorker$WorkerThread.run(ThreadPoolWorker.java:279)
java.lang.NullPointerException
at

is your above response still applicable to heirachy export?

thanks for your patience :slight_smile: usually i just install the driver and push with no issues