All of lore.kernel.org
 help / color / mirror / Atom feed
* [DPDK/cryptodev Bug 1537] Failure to enqueue packets for cryptodev-scheduler_multicore can lead to program crashes
@ 2024-09-09  8:58 bugzilla
  0 siblings, 0 replies; only message in thread
From: bugzilla @ 2024-09-09  8:58 UTC (permalink / raw)
  To: dev

[-- Attachment #1: Type: text/plain, Size: 2198 bytes --]

https://bugs.dpdk.org/show_bug.cgi?id=1537

            Bug ID: 1537
           Summary: Failure to enqueue packets for
                    cryptodev-scheduler_multicore can lead to program
                    crashes
           Product: DPDK
           Version: 22.11
          Hardware: All
                OS: All
            Status: UNCONFIRMED
          Severity: critical
          Priority: Normal
         Component: cryptodev
          Assignee: dev@dpdk.org
          Reporter: 1269690261@qq.com
  Target Milestone: ---

Created attachment 288
  --> https://bugs.dpdk.org/attachment.cgi?id=288&action=edit
Incorrect Variable Usage

Failure Scenario:
   The `cryptodev` scheduler is running in Multi-core mode, with OpenSSL PMD
attached as workers.
   When a batch of packets to be enqueued contains invalid encrypted ESP
(Encapsulating Security Payload) packets, the program crashes.



---------------------------------
Specific Issues:
1. Incorrect Variable Usage:
   - The variable `pending_deq_ops` was incorrectly used instead of
`pending_enq_ops`. This leads to failed condition checks and prevents the
`scheduler_retrieve_session` function from executing. Consequently, the content
of the `op->sym->session` variable becomes abnormal, causing the program to
crash when the OpenSSL PMD accesses this variable.
2. Lack of Exception Handling:
   - There is no handling for exceptional cases when enqueuing packets. When
invalid packets are enqueued, the `rte_cryptodev_enqueue_burst` function always
returns a value of `processed_ops` that is less than `pending_enq_ops`, leading
the program into an infinite retry loop.



--------------------------------
Resolution Suggestions:
1. Correct Variable Usage:
   - In the faulty code, replace `pending_deq_ops` with `pending_enq_ops`.

2. Documentation Update:
   - Add documentation stating that packets should always be added to the
processed operations queue in the worker PMD.

   - Alternatively, implement a maximum retry count check to prevent the
program from entering an infinite retry loop.

-- 
You are receiving this mail because:
You are the assignee for the bug.

[-- Attachment #2: Type: text/html, Size: 4219 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2024-09-09  8:58 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-09  8:58 [DPDK/cryptodev Bug 1537] Failure to enqueue packets for cryptodev-scheduler_multicore can lead to program crashes bugzilla

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.