Michael Davidsaver
cf4b568e64
testPlan(): select isolated network configuration for QSRV
2023-05-09 10:17:32 -07:00
George McIntyre
93e4d3eef3
ioc: qsrv 2 prototype
2023-05-09 10:17:32 -07:00
Michael Davidsaver
e7a0775d76
server: Add extra call() to Server::stop()
...
Not a full solution, though should prevent test1000
from occasionally leaving evbase workers dangling
> not ok 1001 - Instance leak ServerGPRConnect : 217
> not ok 1002 - Instance leak SharedPVImpl : 984
> not ok 1003 - Instance leak StructTop : 1202
> not ok 1004 - Instance leak UDPListener : 2
> not ok 1005 - Instance leak evbase : 2
> not ok 1006 - Instance leak evbaseRunning : 2
2023-05-09 10:17:32 -07:00
Michael Davidsaver
c197ad6a1b
doc: clarify compatibility and NT* helpers
2023-05-08 10:31:04 -07:00
Michael Davidsaver
6e92a1a3cb
NTEnum add display.description
2023-05-08 10:05:24 -07:00
Michael Davidsaver
20e0fa8ca5
client: re-define the meaning of poke()
2023-04-17 15:54:29 -05:00
Michael Davidsaver
dd2f076b4a
client: only advance search bucket during normal search
2023-04-17 15:54:29 -05:00
Michael Davidsaver
fe5a35eb02
client: only reschedule searchTimer on expiry
2023-04-14 10:14:30 -07:00
Thomas Ives
07713faff4
fix: schedule initial search use separate event from the generic work queue
...
By using `tcp_loop.dispatch` to schedule the initial search for a
channel, we are placing the callback into the same work queue that is
used by e.g. `MonitorBuilder::exec` to schedule the call to
`Channel::build`. In situations where lots of channels are being
created simultaneously this can result in lots of single channel search
requests being sent because the work queue alternates between calls to
build a channel and the initial search.
In this commit we instead use a dedicated `evevent` to schedule the
initial search to allow the `initialSearchBucket` to be filled before we
send the initial search request. We delay the initial search by 10 ms to
give more time for the bucket to be filled. See
github.com/mdavidsaver/pvxs/pull/39 for a discussion of how this delay
was chosen.
2023-04-14 10:14:30 -07:00
Thomas Ives
7ae659678f
fix: do not re-search for other channels when doing initial channel search
...
When creating a large number of Channels at once, we can end up calling
`ContextImpl::poke(true)` many times in quick succession. This results
in a flood of UDP broadcasts where we are searching for channels that we
only just sent out the initial search request for.
This can easily lead to packets getting lost and us not receiving a
reply for some Channels. Moreover, as we keep resending search requests
for Channels, we reschedule them further and further in the future (as
`nSearch` is increased). After the dust settles and we stop poking,
this can result in a wait of several seconds before a Channel which we
have not found is searched for again.
In this commit we avoid this issue by using a separate bucket to hold
channels waiting for their initial search request. Rather than poking
`tickSearch` to do the initial search and also resend requests for
outstanding channels, we schedule a call to new call `tickSearch` which
will only send the initial search requests. As such, we will avoid
rebroadcasting search requests for channels we have only just searched
for.
We have prompted the `discover` bool to an enum to distinguish between
the now three different situations `tickSearch` can be called in.
2023-04-14 10:14:30 -07:00
Michael Davidsaver
ad9ba0f085
Add NTScalar::form
2023-04-14 10:14:30 -07:00
Michael Davidsaver
5897fe273e
fix intermittent of testsock
...
Switch to blocking socket, with poll()ing for expected RX failures.
2023-04-14 10:14:30 -07:00
Michael Davidsaver
c8f28f373a
bundle: OSX use -rpath for bundled libevent
2023-04-10 08:52:44 -07:00
Michael Davidsaver
6b63e14140
cmake: skip CMAKE_DEBUG_POSTFIX
2023-04-10 08:47:17 -07:00
Michael Davidsaver
08dd88b4da
update bundled libevent
2023-04-10 08:47:17 -07:00
Michael Davidsaver
0fdfeb72d1
Add testudpfwd
2023-04-10 08:47:15 -07:00
Michael Davidsaver
266ee52704
server: bind both wildcard for UDP
...
When possible, bind both ipv4 and ipv6 wildcard addresses
for UDP. Even when only binding ipv6 address for TCP (Linux)
2023-04-10 08:44:37 -07:00
Michael Davidsaver
b31a354915
improve localhost multicast forwarding
...
On Linux (at least) packets received through the LO
may have non-LO origin addresses...
2023-04-10 08:44:37 -07:00
Michael Davidsaver
fa4294a975
pvxmonitor option to show queueSize
2023-04-06 11:45:41 -07:00
Michael Davidsaver
c373da671b
server: fix default monitor queueSize to 4
2023-04-06 11:45:41 -07:00
Michael Davidsaver
25780f9506
1.1.4
PVXS Python / win64 3.10 (push) Failing after 1s
PVXS Python / win64 3.5 (push) Failing after 1s
PVXS Python / win64 3.6 (push) Failing after 1s
PVXS Python / win64 3.7 (push) Failing after 1s
PVXS Python / win64 3.8 (push) Failing after 1s
PVXS Python / win64 3.9 (push) Failing after 1s
PVXS EPICS / Native Linux with 3.14 (push) Failing after 2s
PVXS EPICS / Native Linux with 3.15 (push) Failing after 2s
PVXS EPICS / Native Linux with clang (push) Failing after 3s
PVXS EPICS / Native Linux (WError) (push) Failing after 2s
PVXS EPICS / Native Linux (c++17) (push) Failing after 2s
PVXS EPICS / Native Linux with libevent stable (push) Failing after 2s
PVXS EPICS / Cross mingw64 DLL (push) Failing after 2s
PVXS EPICS / Cross mingw64 static (push) Failing after 2s
PVXS EPICS / Native Linux with 7.0.2 (push) Failing after 2s
PVXS EPICS / Linux centos 7 (push) Failing after 2s
PVXS EPICS / Linux fedora 34 (push) Failing after 2s
PVXS Python / linux64 test (push) Failing after 1s
PVXS Python / linux 2.7 i686 (push) Failing after 7s
PVXS Python / linux 2.7u i686 (push) Failing after 8s
PVXS Python / linux 3.5 i686 (push) Failing after 8s
PVXS Python / linux 3.6 i686 (push) Failing after 7s
PVXS Python / linux 3.7 i686 (push) Failing after 7s
PVXS Python / linux 3.9 i686 (push) Failing after 7s
PVXS Python / linux 3.8 i686 (push) Failing after 9s
PVXS Python / linux 2.7 amd64 (push) Failing after 7s
PVXS Python / linux 2.7u amd64 (push) Failing after 7s
PVXS Python / linux 3.5 amd64 (push) Failing after 7s
PVXS Python / linux 3.6 amd64 (push) Failing after 7s
PVXS Python / linux 3.7 amd64 (push) Failing after 7s
PVXS Python / linux 3.8 amd64 (push) Failing after 7s
PVXS Python / linux 3.9 amd64 (push) Failing after 7s
PVXS Python / linux 3.10 amd64 (push) Failing after 7s
PVXS EPICS / OSX (push) Cancelled after 0s
PVXS EPICS / RTEMS5 (push) Cancelled after 0s
PVXS EPICS / vs2019 DLL (push) Cancelled after 0s
PVXS EPICS / vs2019 static (push) Cancelled after 0s
PVXS Python / osx 2.7 intel (push) Cancelled after 0s
PVXS Python / osx 3.10 intel (push) Cancelled after 0s
PVXS Python / osx 3.6 intel (push) Cancelled after 0s
PVXS Python / osx 3.7 intel (push) Cancelled after 0s
PVXS Python / osx 3.8 intel (push) Cancelled after 0s
PVXS Python / osx 3.9 intel (push) Cancelled after 0s
1.1.4
2023-04-03 09:30:24 -07:00
Michael Davidsaver
be71a99865
reset event_set_log_callback() during test cleanup
2023-04-03 09:30:24 -07:00
Michael Davidsaver
3e95f502a4
1.1.4a1
2023-04-03 07:35:30 -07:00
Michael Davidsaver
9449059d8b
expose wrappers for some evutil as expert API
2023-04-02 20:21:53 -07:00
Michael Davidsaver
a012b9ffe0
testStrEq() better diff
2023-03-28 15:21:39 -07:00
Michael Davidsaver
c25c6766e5
typo
2023-03-28 15:21:39 -07:00
Michael Davidsaver
303bc61079
apply loc_bad_alloc to owned_ptr
...
Distinguish location of owned_ptr failure
2023-03-28 15:21:39 -07:00
Michael Davidsaver
d692d7da2c
loc_bad_alloc
2023-03-28 15:21:34 -07:00
Michael Davidsaver
46fe3f921b
msvc build compat
...
Sometimes /wd4800 gets interpreted as a path.
No idea why only sometimes...
2023-03-26 18:19:16 -07:00
Michael Davidsaver
8cde51f169
GHA update
2023-03-26 18:14:26 -07:00
Michael Davidsaver
92fb0a4afa
client: fix delta sync of Compound
...
cf. cc5d382930
2023-03-26 18:14:21 -07:00
Michael Davidsaver
f6d2e402bc
1.1.3
PVXS Python / win64 3.10 (push) Failing after 1s
PVXS Python / win64 3.5 (push) Failing after 1s
PVXS Python / win64 3.6 (push) Failing after 1s
PVXS Python / win64 3.7 (push) Failing after 1s
PVXS Python / win64 3.8 (push) Failing after 1s
PVXS Python / win64 3.9 (push) Failing after 1s
PVXS EPICS / Linux centos 7 (push) Failing after 2s
PVXS EPICS / Linux fedora 34 (push) Failing after 2s
PVXS Python / linux64 test (push) Failing after 2s
PVXS Python / linux 2.7 i686 (push) Failing after 7s
PVXS Python / linux 2.7u i686 (push) Failing after 8s
PVXS Python / linux 3.5 i686 (push) Failing after 7s
PVXS Python / linux 3.6 i686 (push) Failing after 7s
PVXS Python / linux 3.7 i686 (push) Failing after 7s
PVXS Python / linux 3.8 i686 (push) Failing after 7s
PVXS Python / linux 3.9 i686 (push) Failing after 8s
PVXS Python / linux 2.7 amd64 (push) Failing after 8s
PVXS Python / linux 2.7u amd64 (push) Failing after 7s
PVXS Python / linux 3.5 amd64 (push) Failing after 7s
PVXS Python / linux 3.6 amd64 (push) Failing after 7s
PVXS Python / linux 3.7 amd64 (push) Failing after 7s
PVXS Python / linux 3.8 amd64 (push) Failing after 7s
PVXS Python / linux 3.9 amd64 (push) Failing after 7s
PVXS Python / linux 3.10 amd64 (push) Failing after 7s
PVXS EPICS / Native Linux with 3.14 (push) Cancelled after 0s
PVXS EPICS / Native Linux with 3.15 (push) Cancelled after 0s
PVXS EPICS / Native Linux with clang (push) Cancelled after 0s
PVXS EPICS / OSX (push) Cancelled after 0s
PVXS EPICS / Native Linux (WError) (push) Cancelled after 0s
PVXS EPICS / Native Linux (c++17) (push) Cancelled after 0s
PVXS EPICS / RTEMS5 (push) Cancelled after 0s
PVXS EPICS / Native Linux with libevent stable (push) Cancelled after 0s
PVXS EPICS / Cross mingw64 DLL (push) Cancelled after 0s
PVXS EPICS / Cross mingw64 static (push) Cancelled after 0s
PVXS EPICS / vs2019 DLL (push) Cancelled after 0s
PVXS EPICS / vs2019 static (push) Cancelled after 0s
PVXS Python / osx 2.7 intel (push) Cancelled after 0s
PVXS Python / osx 3.10 intel (push) Cancelled after 0s
PVXS Python / osx 3.6 intel (push) Cancelled after 0s
PVXS Python / osx 3.7 intel (push) Cancelled after 0s
PVXS Python / osx 3.8 intel (push) Cancelled after 0s
PVXS Python / osx 3.9 intel (push) Cancelled after 0s
1.1.3
2023-03-22 08:35:27 -07:00
Michael Davidsaver
798a1548b8
1.1.3a1
2023-03-22 08:18:38 -07:00
Michael Davidsaver
7d16ab3a62
fix unsigned handling
...
caused unwanted sign extension.
2023-03-21 08:27:40 -07:00
Michael Davidsaver
a0e4d62787
doc
2023-03-20 09:41:41 -07:00
Michael Davidsaver
abeb78a9cd
fix TypeDef(const Value& val) for Union/UnionA/StructA
2023-03-20 09:41:41 -07:00
Michael Davidsaver
36e537e479
appease -Wnoexcept
2023-03-20 09:41:41 -07:00
Michael Davidsaver
6f770d0ea3
final-ize some derived types
2023-03-20 09:41:41 -07:00
Michael Davidsaver
fedbec649b
server: rework cleanup of connection, channel, and operation
2023-03-20 09:41:41 -07:00
Michael Davidsaver
9c546f0ed4
update release notes
2023-02-13 07:45:55 -08:00
Peter Milne
449244090d
spelling fix
...
On branch master
modified: documentation/index.rst
2023-02-13 07:44:44 -08:00
Michael Davidsaver
df60d5ae57
doc
2023-02-13 07:44:44 -08:00
Michael Davidsaver
4ced2d8837
print char types as integers
2023-02-13 07:44:44 -08:00
Michael Davidsaver
f4069ef596
expand testing of shared_array::convertTo
2023-02-13 07:42:54 -08:00
Michael Davidsaver
1aad37c230
minor
2023-02-13 07:42:54 -08:00
Michael Davidsaver
e93909cf7e
fix shared_array::convertTo()
2023-02-12 08:26:50 -08:00
Michael Davidsaver
274133bcfc
~fix magic union autoselect
...
Stop of after first successful conversion
2023-02-12 08:26:50 -08:00
Michael Davidsaver
a613778471
expand test coverage
2023-02-12 08:26:50 -08:00
Michael Davidsaver
30b040465a
fix Value::unmark() w/ parents=true
2023-02-12 08:26:50 -08:00
Michael Davidsaver
da2737f6d2
minor
2023-02-12 08:26:50 -08:00