I have a customer using YAJL on a develoment and production system.
On the development system, things seem to work fine.
On the production system, they are getting the following error repeated in the job log a few times:
C2M1211 Diagnostic 30 02/15/18 13:23:02.539445 QC2UTIL3 QSYS *STMT YAJLBVS G4G *STMT
From module . . . . . . . . : QC2HYPSP
From procedure . . . . . . : send_message__FiPvUi
Statement . . . . . . . . . : 54
To module . . . . . . . . . : YAJL_TREE
To procedure . . . . . . . : yajl_object_free
Statement . . . . . . . . . : 8
Message . . . . : The ILE C heap control structure has been corrupted.
Cause . . . . . : This can be caused by many things. The most common causes
include freeing a space twice, writing outside the bounds of allocated
storage, or writing to storage that has been freed. Recovery . . . : Find
the code that is corrupting the ILE C heap control structure and make
changes to avoid the corruption. The address of the corrupted storage is
X'8000000000000000000080004608405C'. The internal statement number of the
code which detected the corruption is 2140.
Now, to me this looks like somehow the YAJL memory is being corrupted. Let me know if there is any other information I can provide.
Both systems are at the same PTF level V7R3.
The object name is YAJLBVS, but it's really the YAJL object just renamed. I was having customers with different versions of YAJL installed clashing with the versions I was using to I renamed it.
This is also the latest version of YAJL, but I have noticed the YAJL object itself hasn't really changed for a few versions, and it works on many other systems I work with which is why this is odd and I'm not sure where to look for more information.