On 15-02-25 18:58, s...@telenet.be wrote:

valgrind can run the OpenSmalltalk (a dialect or fork of Squeak) interpreter on 
OpenIndiana.

I reported a bug (not sure this is really a bug) for it  #17199.

This relates to https://illumos.org/man/7/epoll  because epoll can be enabled 
for OpenSmalltalk on OpenIndiana.

This is to my knowledge, different from Solaris, as the Illumos kernel supports 
Linux epoll.

If you want Valgrind bugs fixed than you're best off reporting it to https://bugs.kde.org. No promises - we have a big backlog and not enough contributors (something that you might be familiar with).

Looking at https://www.illumos.org/issues/17199

your error is

==3215== Syscall param write(buf) points to uninitialised byte(s)
==3215==    at 0x7FFEBE94A: __write (in /lib/amd64/libc.so.1)
==3215==    by 0x7FFE90550: epoll_ctl (in /lib/amd64/libc.so.1)

The syscall is 'write', not 'epoll'.

Without the source I can't be sure what is happening but this kind of error is quite common.

For syscalls that use either just scalar or array builtin types or fixed structs (like the 'stat' family) we can check the scalar/array/fields of the struct. Generic syscalls like 'read' and 'write' are a problem. All we get is a file descriptor, pointer and a length. We don't know what the pointer points to (we don't do any source analysis). That means that if the struct has any holes or padding amd hasn't been memset to zero we will see uninitialised bytes. We have no way to tell apart struct fields that from holes or padding.

That means that you have two choices.

1. Ensure that the struct gets memset to 0.
2. Use the Valgrind suppression mechanism to suppress the error.

A+
Paul


_______________________________________________
oi-dev mailing list
oi-dev@openindiana.org
https://openindiana.org/mailman/listinfo/oi-dev

Reply via email to