<div dir="ltr"><div><div><div><div><div><div><div><div><div><div><div>Hi,<br><br></div>debug/io-stats and debug/trace are immensely useful for isolating translators that are performance bottlenecks and those that are causing iatt inconsistencies, respectively.<br><br></div>There are other translators too under xlators/debug such as error-gen, which are useful for debugging/testing our code.<br><br></div><div>The trick is to load these above and below one or more suspect translators, run the test and analyse the output they dump and debug your problem.<br></div><div><br></div>Unfortunately, there is no way to load these at specific points in the graph using the volume-set CLI as of today. Our only option is to manually edit the volfile and restart the process and be super-careful not to perform *any* volume-{reset,set,profile} operation and graph switch operations in general that could rewrite the volfile, wiping out all previous edits to it.<br><br></div>I propose the following CLI for achieving the same:<br><br></div># gluster volume set &lt;VOL&gt; {debug.trace, debug.io-stats, debug.error-gen} &lt;xl-name&gt;<br><br></div>where &lt;xl-name&gt; represents the name of the translator above which you want this translator loaded (as parent).<br><br></div>For example, if i have a 2x2 dis-rep volume named testvol and I want to load trace above and below first child of DHT, I execute the following commands:<br><br></div># gluster volume set &lt;VOL&gt; debug.trace testvol-replicate-0<br></div># gluster volume set &lt;VOL&gt; debug.trace testvol-client-0<br></div># gluster volume set &lt;VOL&gt; debug.trace testvol-client-1<br><br></div><div>The corresponding debug/trace translators will be named testvol-replicate-0-trace-parent, testvol-client-0-trace-parent, testvol-client-1-trace-parent and so on.<br><br></div><div>To revert the change, the user simply uses volume-reset CLI:<br><br></div><div># gluster volume reset &lt;VOL&gt; testvol-replicate-0-trace-parent<br></div><div># gluster volume reset &lt;VOL&gt; testvol-client-0-trace-parent<br></div><div># gluster volume reset &lt;VOL&gt; testvol-client-1-trace-parent<br><br></div><div>What should happen when the translator with a trace/io-stat/error-gen parent gets disabled?<br></div><div>Well glusterd should be made to take care to remove the trace xl too from the graph.<br><br><br><br></div><div>Comments and suggestions welcome.<br><br></div><div>-Krutika<br></div></div>