Experimental Physics and Industrial Control System
Documentation of R3.12 Bugs
email@example.com (Marty Kraimer)
Tue, 11 Jul 1995 07:59:00 -0500
I am starting to compile the list of known bugs and other fixes to the
first official 3.12 release, which is just beta13 renamed as 3.12.1.
I am asking for additional known bugs, problems, etc. When fairly complete
this info will be placed in WWW at APS/EPICS. When you send responses
please carefully separate responses for base from responses for extensions.
TPRO - Trace Processing
If a put request results in a request to process a record and the
only result is to set rpro TRUE (reprocess when record completes
processing) no trace message is generated.
The changes that allow defaults for A and F where accidently removed.
At initialization, oval is not properly initialized.
In the case where mode is incremental and closed loop this results
in value being driven temporily to 0 in the event of a ctl/x reboot.
eventTask ring buffer overflow
If post_event(event_number) causes a ring buffer overflow then it
always calls errMessage. Thus if the eventTask fails for some reason,
an error message storm occurs. If many events are being posted, messages
are printed at such a rapid rate that the vxWorks shell becomes unusable.
BURT for DBF_USHORT and DBF_ULONG fields.
If burt is used to save USHORT or ULONG fields then the value restored
will be a value between 0 and 9.
Here is the long-winded explaination of what happened.
BURT requests floats with DBR_FLOAT and doubles with DBR_DOUBLE.
and saves them in exponential format, i.e. x.xxxxxe+xx.
It restores them, however with DBR_STRING.
Because old database access doesnt know about unsigned quantities
the interface between old and new database access tells the user that
the native field type for USHORT is float and for ULONG is double.
Thus BURT asks for USHORTS with DBR_FLOAT and ULONGs with DBR_DOUBLE
(this was done to prevent large positive numbers from appearing as
negative numbers). It then saves them in exp notation.
When the restore is done as a DBR_STRING dbPutField uses integer type
conversions which means that everything starting with "." is ignored.
Here is an example. Lets say that the MRES field of the steppermotor record
has the value 2000. BURT asks for it with DBR_FLOAT and saves it as
"2.00000e+3". When it is restored with DBR_STRING the format used for
conversion is "%hu". This results in a restored value of 2.
Changes to CA client/server to prevent resource ids from being reused
when the resource id counter wraps around. This bug will only
occur after many hours or more likely many days of operation
depending on how fast they create/delete channels. The counter is
32 bits of unsigned int. This is a fairly simple fix but
is complicated somewhat by my switching to EPICS status to fix it.
Dont suspend UDP task if we get the "no route to dest"
error (has happened at APS and at CEBAF). This has the
potential to disable all future connections to the server
until the IOC is rebooted - a simple fix.
Top level commander constant wrong in VXI stuff - a simple one line bug fix.
Other Changes for future releases
This is removed. If users have private versions of initHooks.c
thet will have to remove this case.
Database Hash Algorithm
An improvment to hash algorithm allows larger hash table.
The hash table size will be increased from 512 to 2048.
This means that searches on large databases will be faster.
IOC Environment Variables Changes
epicsSetEnvParams removed from iocInit.c
epicsSetEnvParams removed from envSubr.c
A number of changes were made to Allen Bradley driver to support
the new scanner Allen Bradley is developing to replace the old scanner.
The EPICS Allen Bradley Documentation will be updated to describe
the software changes.
Removed from distribution
Chris Timossi's NT changes to CA client lib.
Changes to CA client lib that allow attaching to multiple
CA servers on one host (allows 3.12 clients into the
new CA server).
Optimized delay through ca_pend_xxx() - need to be careful
with this one (been here before)
Changes to fdmgr.c that prevent the same id from being
used for a current and an expired alarm unless many
alarms have expired (the current version allows
an alarm id to be reused the very instant that the
alarm expires). This involves a small API change.
Use zero for success. Keep old symbol but set it to 0.
- Navigate by Date:
Quiting MDCT... Patavalis Nikos
GUI Documentation Ross Segelken
- Navigate by Thread:
Re: Quiting MDCT... Marty Kraimer
GUI Documentation Ross Segelken