[k3b] [Bug 397732] K3B: data project: when burning wrong size of written data is displayed

Thomas Schmitt bugzilla_noreply at kde.org
Sat Mar 16 11:35:49 GMT 2019


https://bugs.kde.org/show_bug.cgi?id=397732

--- Comment #6 from Thomas Schmitt <scdbackup at gmx.net> ---
Hi,

Armin Mohring wrote:
> I am using Manjaro with k3b version 18.12.3.
> Now the written data size is reported correctly.
> Solved!

If some code change in K3B caused this improvement, then i fail to see it
in https://github.com/KDE/k3b/commits since summer 2018.
It might have been about a KDE change outside of K3B.


Back in august, i wanted to learn how k3bgrowisofswriter.cpp starts
growisofs and connects to its output channels. But i could not find
the implementation of this call:

        if( !d->process.start( KProcess::MergedChannels ) ) {

I expect that in the end the system call pipe(2) is employed.
Its man page gives a glimpse of an idea what might have happened:

  O_DIRECT (since Linux 3.4)
      Create a pipe that performs I/O in "packet" mode.
      [...]
      *  If a read(2) specifies a buffer size that is smaller than the
         next packet, then the requested number of bytes are read, and
         the  excess  bytes in the packet are discarded.

But as said, i got lost in the C++ jungle and could not confirm that
pipe(2) was used with flag O_DIRECT. Class GrowisofsWriter in
k3bgrowisofswriter.h has no member named "process". So "d->process" and
its member ".start()" are probably inherited from other classes.


Have a nice day :)

Thomas

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the k3b mailing list