Opened 7 years ago

Closed 6 years ago

#11517 closed Bug Report - General (fixed)

starting mythfrontend is very verbose

Reported by: JYA Owned by: danielk
Priority: minor Milestone: 0.27
Component: MythTV - General Version: Unspecified
Severity: medium Keywords:
Cc: Ticket locked: no

Description

On a mac, running master.

Start mythfrontend

Log will fill with :

2013-04-30 13:35:08.088384 E  Socket readBlock error 0
2013-04-30 13:35:08.088720 E  Socket readBlock error 9
2013-04-30 13:35:08.088756 E  Socket readBlock error 9
2013-04-30 13:35:08.088912 E  Socket readBlock error 9
2013-04-30 13:35:08.088967 E  Socket readBlock error 9
2013-04-30 13:35:08.089168 E  Socket readBlock error 9
2013-04-30 13:35:08.089236 E  Socket readBlock error 9
2013-04-30 13:35:08.089418 E  Socket readBlock error 9
2013-04-30 13:35:08.089581 E  Socket readBlock error 9
2013-04-30 13:35:08.089752 E  Socket readBlock error 9
2013-04-30 13:35:08.089890 E  Socket readBlock error 9
2013-04-30 13:35:08.090034 E  Socket readBlock error 9
2013-04-30 13:35:08.092493 E  Socket readBlock error 9
2013-04-30 13:35:08.114291 E  Socket readBlock error 9

Change History (3)

comment:1 Changed 7 years ago by danielk

According to the Error enum here:

http://www.tbi.univie.ac.at/~pmg/tutorials/QT/html/qsocketdevice.html

"Socket readBlock error 0" is NoError? and "Socket readBlock error 0" is UnknownError?.

The debugging + nearby code was introduced in [44df943b0f9]. This is independent of the MythSocket? code and can be reverted independently if I can't find the bug.

It is very weird that ret would be < 0 and then error returns 0.

comment:2 Changed 6 years ago by JYA

After tracking.. The issue comes from ::readrecv returning -1 and setting errnor = EAGAIN

so MSocketDevice::readData returns -1 as if an error occurred, when really it should only try to read again (seeing the it's called from readBlock()

why would the socket indicates that it has XX bytes available; but returns EAGAIN; I'm not sure..

But this needs addressing in MythSocket?

comment:3 Changed 6 years ago by Jean-Yves Avenard <jyavenard@…>

Resolution: fixed
Status: newclosed

In 8882c7551845a302b53e5d7a0bfb0fcbd929c207/mythtv:

Don’t treat EAGAIN or EWOULDBLOCK as error, instead retry up to 3 times

It would probably be more elegant to fix MSocketDevice::readData instead, but as it’s the only location using the MSocketDevice that way, it will be fine for now

Fixes #11517

Note: See TracTickets for help on using tickets.