From 3e58c59377566c3a65cd5bc7a609ecf60a68ad19 Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Thu, 19 Jan 2017 12:33:54 -0600 Subject: [PATCH] Fix CA server bind issue from Freddie Akeroyd --- documentation/RELEASE_NOTES.html | 27 +++-- src/cas/io/bsdSocket/casIntfIO.cc | 121 ++++++++++---------- src/libCom/osi/os/Darwin/osdSock.h | 3 +- src/libCom/osi/os/Linux/osdSock.h | 10 +- src/libCom/osi/os/RTEMS/osdSock.h | 7 +- src/libCom/osi/os/WIN32/osdSock.h | 5 +- src/libCom/osi/os/cygwin32/osdSock.h | 4 +- src/libCom/osi/os/freebsd/osdSock.h | 6 +- src/libCom/osi/os/iOS/osdSock.h | 1 + src/libCom/osi/os/solaris/osdSock.h | 8 +- src/libCom/osi/os/vxWorks/osdSock.h | 9 +- src/rsrv/caservertask.c | 161 ++++++++++++++------------- 12 files changed, 188 insertions(+), 174 deletions(-) diff --git a/documentation/RELEASE_NOTES.html b/documentation/RELEASE_NOTES.html index 98913581e..859ff7b29 100644 --- a/documentation/RELEASE_NOTES.html +++ b/documentation/RELEASE_NOTES.html @@ -13,6 +13,17 @@ +

Server bind issue on Windows

+ +

When a National Instruments network variables CA server is already running on +a Windows system and an IOC or PCAS server is started, the IOC's attempt to +bind a TCP socket to the CA server port number fails, but Windows returns a +different error status value than the IOC is expecting in that circumstance +(because the National Instruments code requests exclusive use of that port, +unlike the EPICS code) so the IOC fails to start properly. The relevent EPICS +bind() checks have now been updated so the IOC will request that a dynamic port +number be allocated for this TCP socket instead when this happens.

+

Checking Periodic Scan Rates

Code has been added to the IOC startup to better protect it against bad @@ -786,7 +797,7 @@ access monitor on the DLYA field; this happens twice during record processing if the ODLY field is larger than 0.

Timestamps from all seq record monitor events have been wrong since 1995 or -earlier, the time being provided was from the last time the record processed. +earlier, the time being provided was from the last time the record processed. Now the record timestamp will be updated between reading each DOL1..DOLA link and posting the monitor on the associated DO1..DOA field. The VAL field is never given a value by the record processing code, but is used for posting @@ -1018,7 +1029,7 @@ fixed in this release:

  • 717252 local caput causes ioc crash on win32
  • -
  • 750549 +
  • 750549 epicsTime has non-portable c++ static initialization
  • 753137 @@ -1372,7 +1383,7 @@ more extensive modifications.

    RTEMS 4.10 support

    -

    Added support for the latest release of RTEMS. There is no longer a +

    Added support for the latest release of RTEMS. There is no longer a distinction between executive and malloc memory pools. The new mount() API is used.

    @@ -1465,7 +1476,7 @@ doing a put

    These changes impact the Gateway (Proxy server) and other servers but not the IOC. -

    Mantis 360 fix - server is unresponsive for one of its clients, when +

    Mantis 360 fix - server is unresponsive for one of its clients, when async io postponed and in flow control mode

    Mantis 358 fix - PCAS service snap-in has no way to determine if its a put, @@ -1478,7 +1489,7 @@ controling motor through gw.

    Mantis 340 fix - leak when performing a read and conversion fails.

    -

    Mantis 348 fix - A call to 'assert (item.pList == this)' +

    Mantis 348 fix - A call to 'assert (item.pList == this)' failed in ../../../../src/cas/generic/st/ioBlocked.cc line 112

    Mantis 345 fix - Compilation warning: complaint about missing @@ -1494,7 +1505,7 @@ R3.13 client

    Mantis 329 fix - GW hang, pthread_mutex_lock failed: error Invalid argument message

    -

    Mantis 352 fix - gateway hangs temporarily under heavy load on 8-core +

    Mantis 352 fix - gateway hangs temporarily under heavy load on 8-core 64bit RHEL5