[Tile-serving] [openstreetmap/mod_tile] DEBUG: Failed to read cmd on fd (2) (#170)

Artiom Neganov notifications at github.com
Sun Nov 5 12:33:01 UTC 2017


Sorry for duplicating this issue, but the original one #77 became messy as there were discussed not-related things, including "doesn't work" problems. This one is dedicated only to a DEBUG message which you can see in your logs, e.g.:

```
renderd[17]: DEBUG: Failed to read cmd on fd 4
renderd[17]: DEBUG: Sending render cmd(3 osmcarto 8/159/93) with protocol version 2 to fd 8
renderd[17]: DEBUG: Connection 0, fd 4 closed, now 5 left
renderd[17]: DEBUG: Failed to read cmd on fd 11
renderd[17]: DEBUG: Connection 4, fd 11 closed, now 4 left
renderd[17]: DEBUG: Failed to read cmd on fd 8
renderd[17]: DEBUG: Sending render cmd(3 osmcarto 8/159/92) with protocol version 2 to fd 7
renderd[17]: DEBUG: Connection 1, fd 8 closed, now 3 left
renderd[17]: DEBUG: Failed to read cmd on fd 10
renderd[17]: DEBUG: Connection 2, fd 10 closed, now 2 left
renderd[17]: DEBUG: Failed to read cmd on fd 7
renderd[17]: DEBUG: Connection 0, fd 7 closed, now 1 left
renderd[17]: DEBUG: Failed to read cmd on fd 9
renderd[17]: DEBUG: Connection 0, fd 9 closed, now 0 lef
```
According the this reply https://github.com/openstreetmap/mod_tile/issues/77#issuecomment-50244923 which I quote here:
> The "failed to read cmd" message was added by Kai in 9d4e10e. It will be triggered any time a connection is closed because recv() returns 0 for this case. I don't think it is any cause for concern but maybe we want to set this at LOG_DEBUG or differentiate between -1 (errors) and 0 (successful close).
- there is even nothing to worry about. 

But let's make it clear: if you print a message like that into a log, they you assume it's to be seen by a sysadmin and some actions to be done, correct? Anyway, such fail-messages are always making us a bit nervous. I didn't get into details, but just looking at this code:

```c
    ret = recv(fd, cmd, sizeof(struct protocol_v1), block?MSG_WAITALL:MSG_DONTWAIT);
    if (ret < 1) {
        syslog(LOG_INFO, "DEBUG: Failed to read cmd on fd %i", fd);
        return -1;
    } else if (ret < sizeof(struct protocol_v1)) {
        syslog(LOG_INFO, "DEBUG: Read incomplete cmd on fd %i", fd);
        return 0;
    }
```

- I assume that getting `ret < 1` is not what this code "treats" as normal instantly exiting the function. It'd rather want to see some other value and continue the execution flow. But if contrariwise exiting the function is totally normal (sort of EOF) then why print this message after all? Who needs it and what is supposed to do? Does it sign about some bad situation at server-side or client-side or not at all? Please clarify.

What I want to say is:

* if this message really doesn't signals about internal errors
OR
* if it doesn't affect caching
OR
* if it doesn't affect performance
THEN
* this message could be probably simply removed.



-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/openstreetmap/mod_tile/issues/170
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstreetmap.org/pipermail/tile-serving/attachments/20171105/501e3071/attachment.html>


More information about the Tile-serving mailing list