Bug 2232542 - [bcc] Type: 'unsigned char[256]' not recognized. Please define the data with ctypes manually.
Summary: [bcc] Type: 'unsigned char[256]' not recognized. Please define the data with ...
Keywords:
Status: NEW
Alias: None
Product: Red Hat Enterprise Linux 9
Classification: Red Hat
Component: bcc
Version: 9.0
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Jerome Marchand
QA Contact: Ziqian SUN (Zamir)
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-08-17 10:11 UTC by Adrián Moreno
Modified: 2023-08-17 12:30 UTC (History)
7 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: Bug
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker RHELPLAN-165962 0 None None None 2023-08-17 10:14:24 UTC

Description Adrián Moreno 2023-08-17 10:11:38 UTC
Description of problem:

When you build a program using bcc's automatic C types binding that contains a simple type such as "unsigned char[256]" a runtime error is triggered:

"""
Type: 'unsigned char[256]' not recognized. Please define the data with ctypes manually.

Exception ignored on calling ctypes callback function: <function RingBuf.open_ring_buffer.<locals>.ringbuf_cb_ at 0x7ff64df49940>
"""

I tracked the error to be a regression introduced in 0.24 by:

ca1d3fd0 bcc: Fix array type handling due to llvm changes

I also fixed the issue upstream with:

8f8e9a2c bcc: Fix multi-word array type handling (#4412)

However, we (OVS team) ship some BCC scripts for rhel-9 as part of openvswitch3.1-test package which are affected by this.
So this is a request to z-stream the fix to the relevant rhel-9 versions.

Version-Release number of selected component (if applicable):

From 0.24 up to 0.26 both included.

How reproducible:

100%

Steps to Reproduce:
1. Run a BCC program with "unsigned char []" as a Ctype that is shared between ebpf and userspace, e.g: https://github.com/openvswitch/ovs/blob/master/utilities/usdt-scripts/upcall_cost.py


Actual results:

An exception is thrown:
"""
Type: 'unsigned char[256]' not recognized. Please define the data with ctypes manually.

Exception ignored on calling ctypes callback function: <function RingBuf.open_ring_buffer.<locals>.ringbuf_cb_ at 0x7ff64df49940>
"""

Expected results:

No exception should be thrown.

Additional info:

Comment 1 Adrián Moreno 2023-08-17 12:30:19 UTC
I think we also need this in rhel8. Just checked and it ships with bcc 0.25 which is also affected.


Note You need to log in before you can comment on or make changes to this bug.