Known Bugs and Fixes for EPICS Release 3.13.7

dbEvent

A bug exists in dbEvent.c that can cause an IOC to go into an infinite loop. This can happen if a client has many undelivered monitors and cancels events. A patch is now available which fixes this problem in both R3.13.6 and R3.13.7.

To make the necessary source code changes, download the patch file from here (shift+click on that link in most browsers) and and copy it to the <base>/src/db directory. Then use the patch program to apply the change as follows:

zeus% patch < dbEvent.patch
  Looks like a unified context diff.
done

Finally run gnumake at the top of the base tree.

osiSocklen_t

In building on solaris with the GNU compilers and SHARED_LIBRARIES=YES the build fails with the following error in src/cas:

.../../../io/bsdSocket/casIntfIO.cc:141: cannot convert `osiSocklen_t*' to `socklen_t*' for argument `3' to `int getsockname(int, sockaddr*, socklen_t*)'

Sun changed the interface when moving to the new versions of Solaris, so we are forced to use an ifdef.
In src/include/os/solaris/osiSock.h change

#if SOLARIS <= 6
typedef int osiSocklen_t;
#else
typedef uint32_t osiSocklen_t;
#endif
to
#if SOLARIS > 6 || defined ( _SOCKLEN_T )
typedef uint32_t osiSocklen_t;
#else
typedef int osiSocklen_t;
#endif