[RTEMS Project] #3986: 4.10: CORE_message_queue_Send timeout failure?

RTEMS trac trac at rtems.org
Tue May 26 14:44:36 UTC 2020


#3986: 4.10: CORE_message_queue_Send timeout failure?
--------------------------+---------------------------
 Reporter:  Gedare Bloom  |       Owner:  Gedare Bloom
     Type:  defect        |      Status:  assigned
 Priority:  normal        |   Milestone:  4.10.3
Component:  score         |     Version:  4.10
 Severity:  normal        |  Resolution:
 Keywords:                |  Blocked By:
 Blocking:                |
--------------------------+---------------------------
Description changed by Gedare Bloom:

Old description:

> EPICS developers report:
>   I notice that the only internal usage of _CORE_message_queue_Send() in
> RTEMS is in rtems_message_queue_send(), where it never blocks (wait=0).
> So this might be a bug in the wait=1 case.
>
> https://git.rtems.org/rtems/tree/cpukit/score/src/coremsgsubmit.c?h=4.10#n132
>
> By manual code inspection, I think POSIX mq_timedsend goes through the
> wait path. But there is no wait path for classic message queues.
>
> The question also arises whether this use case should be supported for
> classic mqs. The design pattern for blocking send when you have async
> send and blocking recv is to use an ACK from the receiver to implement
> your own rendezvous. However it doesn't abort the send in case of a
> timeout, so there might be something worth adding.

New description:

 EPICS developers report:
   I notice that the only internal usage of _CORE_message_queue_Send() in
 RTEMS is in rtems_message_queue_send(), where it never blocks (wait=0).
 So this might be a bug in the wait=1 case.

 https://git.rtems.org/rtems/tree/cpukit/score/src/coremsgsubmit.c?h=4.10#n132

 By manual code inspection, I think POSIX mq_timedsend goes through the
 wait path. But there is no wait path for classic message queues.

 The question also arises whether this use case should be supported for
 classic mqs: Block on send() with timeout when mq full.

--

--
Ticket URL: <http://devel.rtems.org/ticket/3986#comment:1>
RTEMS Project <http://www.rtems.org/>
RTEMS Project


More information about the bugs mailing list