rsync_error_log_line_length truncates destination

Bug #1870411 reported by clayg
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Object Storage (swift)
New
Undecided
Unassigned

Bug Description

There's been a few tweeks to rsync_error_log_line_length tunable over the years, we default to 2048 which is quite few bytes for log line...

The problem is the last argument of the command that errors is *super* relevant:

Feb 14 12:12:57 sac-eng-paco02 object-replicator: [worker 1/2 pid=30731] Bad rsync return code: 5 <- ['rsync', '--recursive', '--whole-file', '--human-readable', '--xattrs', '--itemize-changes', '--ignore-existing', '--timeout=30', '--contimeout=30', '--bwlimit=0', '--exclude=.*.[0-9a-zA-Z][0-9a-zA-Z][0-9a-zA-Z][0-9a-zA-Z][0-9a-zA-Z][0-9a-zA-Z]', u'/srv/node/d7/objects/62179/273', u'/srv/node/d7/objects/62179/274', u'/srv/node/d7/objects/62179/000', u'/srv/node/d7/objects/62179/001', u'/srv/node/d7/objects/62179/002', u'/srv/node/d7/objects/62179/005', u'/srv/node/d7/objects/62179/007', u'/srv/node/d7/objects/62179/00a', u'/srv/node/d7/objects/62179/00c', u'/srv/node/d7/objects/62179/00d', u'/srv/node/d7/objects/62179/00e', u'/srv/node/d7/objects/62179/011', u'/srv/node/d7/objects/62179/015', u'/srv/node/d7/objects/62179/01b', u'/srv/node/d7/objects/62179/01d', u'/srv/node/d7/objects/62179/01f', u'/srv/node/d7/objects/62179/020', u'/srv/node/d7/objects/62179/021', u'/srv/node/d7/objects/62179/027', u'/srv/node/d7/objects/62179/029', u'/srv/node/d7/objects/62179/02c', u'/srv/node/d7/objects/62179/031', u'/srv/node/d7/objects/62179/035', u'/srv/node/d7/objects/62179/039', u'/srv/node/d7/objects/62179/03c', u'/srv/node/d7/objects/62179/03d', u'/srv/node/d7/objects/62179/042', u'/srv/node/d7/objects/62179/046', u'/srv/node/d7/objects/62179/050', u'/srv/node/d7/objects/62179/051', u'/srv/node/d7/objects/62179/052', u'/srv/node/d7/objects/62179/057', u'/srv/node/d7/objects/62179/058', u'/srv/node/d7/objects/62179/05a', u'/srv/node/d7/objects/62179/064', u'/srv/node/d7/objects/62179/06a', u'/srv/node/d7/objects/62179/076', u'/srv/node/d7/objects/62179/078', u'/srv/node/d7/objects/62179/079', u'/srv/node/d7/objects/62179/07a', u'/srv/node/d7/objects/62179/080', u'/srv/node/d7/objects/62179/081', u'/srv/node/d7/objects/62179/086', u'/srv/node/d7/objects/62179/089', u'/srv/node/d7/objects/62179/08a', u'/srv/node/d7/objects/62179/091', u'/srv/node/d7/objects/62179/09c', u'/srv/node/d7/objects/62179/09e', u'/srv/node/d7/objects/62179/09f', u'/srv/node/d7/objects/62179/0a1', u'/srv/node/d7/objects

^ BUT WHERE!?

the end of the story is something like:

u'/srv/node/d6/objects/16449/fd1', u'/srv/node/d6/objects/16449/fd2', u'/srv/node/d6/objects/16449/fd6', u'/srv/node/d6/objects/16449/fd8', u'/srv/node/d6/objects/16449/fda', u'/srv/node/d6/objects/16449/fea', u'/srv/node/d6/objects/16449/fee', u'/srv/node/d6/objects/16449/ff2', u'/srv/node/d6/objects/16449/ff5', u'/srv/node/d6/objects/16449/ffa', u'/srv/node/d6/objects/16449/ffc', u'192.168.64.151::object_d62/d62/objects/16449']

We should use the bytes in the configured max line length better and try to get in that node ip and rsync module into the log message

i.e.

diff --git a/swift/obj/replicator.py b/swift/obj/replicator.py
index 762a77ea4..8af3f97cb 100644
--- a/swift/obj/replicator.py
+++ b/swift/obj/replicator.py
@@ -349,7 +349,8 @@ class ObjectReplicator(Daemon):
                  otherwise the initial line.
         """
         if self.rsync_error_log_line_length:
- return line[:self.rsync_error_log_line_length]
+ half = int(self.rsync_error_log_line_length / 2)
+ return '...'.join((line[:half], line[:-half]))

         return line

clayg (clay-gerrard)
tags: added: low-hanging-fruit
Revision history for this message
Tim Burke (1-tim-z) wrote :

Or log two lines? Or update the message to something like

 [worker 1/2 pid=30731] Bad rsync return code talking to 192.168.64.151::object_d62: 5 <- ['rsync', ...

?

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.