From mboxrd@z Thu Jan 1 00:00:00 1970 From: bugzilla-daemon@freedesktop.org Subject: [Bug 109679] [CI][BAT] CHAMELIUM: igt@kms_chamelium@hdmi-crc-fast - fail - Chamelium RPC call failed: RPC failed at server. :integer division or Date: Tue, 19 Feb 2019 18:10:53 +0000 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0134161939==" Return-path: Received: from culpepper.freedesktop.org (culpepper.freedesktop.org [IPv6:2610:10:20:722:a800:ff:fe98:4b55]) by gabe.freedesktop.org (Postfix) with ESMTP id A627C8932B for ; Tue, 19 Feb 2019 18:10:53 +0000 (UTC) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org --===============0134161939== Content-Type: multipart/alternative; boundary="15505998530.EFac.28639" Content-Transfer-Encoding: 7bit --15505998530.EFac.28639 Date: Tue, 19 Feb 2019 18:10:53 +0000 MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://bugs.freedesktop.org/ Auto-Submitted: auto-generated https://bugs.freedesktop.org/show_bug.cgi?id=3D109679 --- Comment #3 from Stuart Summers --- Agree this looks like an issue in IGT or possibly in the chameleond daemon.= At a quick glance, there aren't a whole lot of places in the CaptureVideo path that might trigger this exception in chameleond. It does look feasible that= if we were to pass a 0 for width and height, we could potentially get a div-by-zero exception when chameleond prepares the video output: CaptureVideo -> _PrepareCapturingVideo/_captured_params['max_frame_limit']/flow_manager.Get= MaxFrameLimit -> input_flow.GetMaxFrameLimit -> frame_manager.GetMaxFrameLimit -> field_manager.GetMaxFieldLimit -> VideoDumper.GetMaxFieldLimit: def GetMaxFieldLimit(cls, width, height):=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 """Returns of the maximal number of fields which can be dumped."""=20 BYTE_PER_PIXEL =3D 3=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20 PAGE_SIZE =3D 4096=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 field_size =3D width * height * BYTE_PER_PIXEL=20=20=20 field_size =3D ((field_size - 1) / PAGE_SIZE + 1) * PAGE_SIZE return cls._DUMP_BUFFER_SIZE / field_size That said, running this myself locally does not result in the failure of th= is sighting, and from kms_chamelium.c, during the CRC check, we are passing 0 = for width and height: chamelium_capture(data->chamelium, port, 0, 0, 0, 0, count); So I'd expect this to fail all the time if the issue were in the Python cal= l I indicated above. And I'd also expect for CI to have seen this already if that were the case, given this code has been present for some time. --=20 You are receiving this mail because: You are the assignee for the bug.= --15505998530.EFac.28639 Date: Tue, 19 Feb 2019 18:10:53 +0000 MIME-Version: 1.0 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://bugs.freedesktop.org/ Auto-Submitted: auto-generated

Commen= t # 3 on bug 10967= 9 from Stuart Summers
Agree this looks like an issue in IGT or possibly in the chame=
leond daemon. At
a quick glance, there aren't a whole lot of places in the CaptureVideo path
that might trigger this exception in chameleond. It does look feasible that=
 if
we were to pass a 0 for width and height, we could potentially get a
div-by-zero exception when chameleond prepares the video output:
CaptureVideo ->
_PrepareCapturingVideo/_captured_params['max_frame_limit']/flow_manager.Get=
MaxFrameLimit
-> input_flow.GetMaxFrameLimit -> frame_manager.GetMaxFrameLimit ->
field_manager.GetMaxFieldLimit -> VideoDumper.GetMaxFieldLimit:
  def GetMaxFieldLimit(cls, width, height):=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20
    """Returns of the maximal number of fields which can be =
dumped."""=20
    BYTE_PER_PIXEL =3D 3=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20
    PAGE_SIZE =3D 4096=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20
    field_size =3D width * height * BYTE_PER_PIXEL=20=20=20
    field_size =3D ((field_size - 1) / PAGE_SIZE + 1) * PAGE_SIZE
    return cls._DUMP_BUFFER_SIZE / field_size

That said, running this myself locally does not result in the failure of th=
is
sighting, and from kms_chamelium.c, during the CRC check, we are passing 0 =
for
width and height:
  chamelium_capture(data->chamelium, port, 0, 0, 0, 0, count);

So I'd expect this to fail all the time if the issue were in the Python cal=
l I
indicated above.

And I'd also expect for CI to have seen this already if that were the case,
given this code has been present for some time.


You are receiving this mail because:
  • You are the assignee for the bug.
= --15505998530.EFac.28639-- --===============0134161939== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs --===============0134161939==--