EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Bugs in StreamDevice 2
From: Dirk Zimoch <[email protected]>
To: EPICS Tech Talk <[email protected]>
Date: Wed, 14 Sep 2011 15:00:53 +0200
Hi all,

I have put the new version 2.5 on our web site http://epics.web.psi.ch/software/streamdevice/

This version fixes the bugs Ralph had found (and some more similar problems with 64 bit machines). However it still shows different behavior on 64 bit machine when negative DBF_LONG values (e.g. ao.RVAL) are printed with unsigned int formats like %x. The values are then sign extended to 64 bits. Is this a bug?

It also fixes a bug which can hang up a record in PACT=1 state. Dehong had reported such a problem.

I have tested this version against asyn 4-8, 4-16 and 4-17 and base 3.13.10, 3.14.8 and 3.14.12 on vxWorks and Linux.


There are some new features compared to version 2.4:

* in "%?..."; with any format converter returns 0/0.0/"" when the input does not match.

* in "%=..."; with any format allows matching variable values. It does an _output_ conversion and then matches input against the resulting string.

* "%{...}" now allows value assignment when used with # flag:
"%#{string1=3|string2=-2|string4=0}"

* exec command can have formats:
exec "dbpr %(NAME)s,%i > %(NAME)s.txt";

* redirection %(record)... is equivalent to %(record.VAL)...

* in "\_"; matches any amount of whitespace (incl. none)

* in "%#..."; allows spaces inside strings (%#s) and between sign and number in inputs (%#f %#d %#i ...)

* in "%-o %-x"; allows reading signed octal or hex values.

* "%T(format)" converts from and to timestamps. Seconds past 1970 or EPICS time stamps when redirected to TIME filed: %(TIME)T(format)


Please test and report bugs.
Dirk


Ralph Lange wrote:
Hi Dirk,

I discovered two bugs in current StreamDevice.

1. (trivial): StreamBuffer uses the wrong operator delete for arrays.
2. (major): On 64bit archs, the waveform device support corrupts IOC
memory when the record's FTVL is LONG or ULONG, leading to IOC crashes
(segfaults).

Patches are enclosed, the IOC is running happily ever after.

Cheers,
~Ralph




References:
Bugs in StreamDevice 2 Ralph Lange

Navigate by Date:
Prev: ioc linux crash using errlogprintf haquin
Next: RE: ioc linux crash using errlogprintf Davidsaver, Michael
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Bugs in StreamDevice 2 Ralph Lange
Next: Re: Bugs in StreamDevice 2 Dirk Zimoch
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·