Michael Davidsaver
cf4b568e64
testPlan(): select isolated network configuration for QSRV
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
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
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
c373da671b
server: fix default monitor queueSize to 4
2023-04-06 11:45:41 -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
92fb0a4afa
client: fix delta sync of Compound
...
cf. cc5d382930
2023-03-26 18:14:21 -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
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
4ced2d8837
print char types as integers
2023-02-13 07:44:44 -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
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
Michael Davidsaver
b9170a9885
fix Value::nmembers
2023-02-12 08:26:50 -08:00
Michael Davidsaver
6a560172dc
1.1.2a1
2023-02-03 14:00:16 -08:00
Michael Davidsaver
f75bcc5044
constify OpBase and friends
2023-01-31 09:54:10 -08:00
Michael Davidsaver
78f54455e6
Value fix delta output format
...
Actually show delta
2023-01-31 09:54:10 -08:00
Michael Davidsaver
a9699be7e8
minor
2023-01-31 09:54:10 -08:00
Michael Davidsaver
66441a4d2f
doc
2023-01-26 08:51:31 -08:00
Michael Davidsaver
a7ce56ac18
add shared_array::thaw()
2023-01-26 08:23:40 -08:00
Michael Davidsaver
6d9a77d03b
SigInt fix disarm
2023-01-26 08:23:40 -08:00
Michael Davidsaver
e7d7f185d4
Value::lookup throw NoField
2023-01-25 22:41:25 -08:00
Michael Davidsaver
b17f820767
sharedpv: avoid deadlock on error path
...
Need to unlock for all MonitorSetupOp methods
2022-12-27 11:16:35 -08:00
Michael Davidsaver
db6b7ba34b
minor
2022-12-27 11:16:35 -08:00
Michael Davidsaver
c7b4650ba1
fix TypeStore maintenance
2022-12-14 12:36:14 -08:00
Michael Davidsaver
2ea141a149
doc
2022-12-13 15:45:13 -08:00
Michael Davidsaver
af20a88450
1.1.0
PVXS Python / win64 3.10 (push) Failing after 9s
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 1s
PVXS Python / linux 2.7 i686 (push) Failing after 7s
PVXS Python / linux 2.7u i686 (push) Failing after 7s
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 7s
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 8s
PVXS Python / linux 3.8 amd64 (push) Failing after 8s
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 3.7 intel (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.8 intel (push) Cancelled after 0s
PVXS Python / osx 3.9 intel (push) Cancelled after 0s
2022-11-28 08:04:28 -08:00
Michael Davidsaver
ac0f7948d5
Add MonitorStat::maxQueue
2022-11-27 08:20:13 -08:00
Michael Davidsaver
1ed51c597c
avoid redundant atomic load
...
compare_exchange_strong() updates 'idx' with
the actual value if the comparison fails.
2022-11-27 08:20:13 -08:00