[subexp-daq] lwrocmerge stream server problem coupled with Go4
Håkan T Johansson
f96hajo at chalmers.se
Fri Jan 17 15:50:48 CET 2025
Dear Martin,
Does it work to connect the go4 to a transport server?
(The protocols are very similar, the only on-wire difference is actually
that a stream server sends back a request to get a new block of data every
time. but drasi does not care about that, it just sends data anyhow, and
eats whatever garbage (request) the consumer is sending to it).
Both transport and stream protocols start by sendsing a 16-byte 'info'
header to the client. This I have abused a bit to send some additional
information about port mapping. This may actually be only in the stream
case and not in the transport case, since there the data transmission
starts without any further request, such that I cannot play that trick.)
It may be that go4 does not like that abuse. However, those port map
tricks were first done in ucesb, so should be the same. So that is a bit
of a wonder then...
Other test: can you use a plain go4 ('empty' equivalent) and see if that
is willing to eat the data from drasi? If not, we have source so can
debug...
Hmm, the drasi '--server' option has the 'forcemap' option, but that would
surely not help. One could implement a 'nomap' ('noportmap') option to
turn these tricks off, if they turn out to be the issue. That then leads
to the fun with 'port-in-use', but that's another story...
What may then be nicer to use is (if transport protocol works) to just use
a transport server, but on another port. And tell that --server to be
'nohold'. That is then the equivalent of a transport server in that it
does not hinder the DAQ if it does not keep up.
I'm Cc'ing the subexp-daq at lists.chalmers.se also, as this info may be
useful for someone else. (And also that this might be a point that could
use better documentation... A small protocol description...)
Cheers,
Håkan
On Fri, 17 Jan 2025, Bajzek, Martin wrote:
>
> Dear Haakan,
>
>
> there's an issue if a Go4 client connects to a stream server from drasi
> timeorderer (lwrocmerge executable).
>
> The client connects successfully but throws some error (can't debug with
> -ggdb3, as the build is not ours) on the very first event.
>
> Says that something is wrong with the event source.
>
>
> However, if I spawn] a UCESB intermediary:
>
> ./empty/empty stream://daq --server=stream
>
>
> Then everything works fine..
>
>
> Could this be that the LMD packets in lwrocmerge stream server are different
> than in the UCESB empty server?
>
> If not, what would be the suspect?
>
>
> Cheers,
>
> -- Martin
>
>
>
More information about the subexp-daq
mailing list