[Bugs] [Bug 1433460] New: Extra line of ^@^@^@ at the end of the file

bugzilla at redhat.com bugzilla at redhat.com
Fri Mar 17 16:57:28 UTC 2017


https://bugzilla.redhat.com/show_bug.cgi?id=1433460

            Bug ID: 1433460
           Summary: Extra line of ^@^@^@ at the end of the file
           Product: GlusterFS
           Version: 3.10
         Component: unclassified
          Severity: medium
          Assignee: bugs at gluster.org
          Reporter: patrice.linel at genusplc.com
                CC: bugs at gluster.org



Description of problem:

When running a program on a distribute volume with sharding, sometimes
the files get created with an extra line of special characters ^@^@^@ at
the end. This happen under load with multiple nodes access the same
folders with job creating files and reading them very shortly on another
node (>0.5 sec later).
I did an strace and the major difference is an Inappropriate ioctl
followed by an lseek like below.


When running the same workload on a panfs filesystem , the strace is the
same but no extra line get created at the end.



Manually

ioctl(1, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS,
{B38400 opost isig icanon echo ...}) = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 32), ...}) = 0
readlink("/proc/self/fd/1", "/dev/pts/32", 4095) = 11
stat("/dev/pts/32", {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 32),
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS,
{B38400 opost isig icanon echo ...}) = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 32), ...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS,
{B38400 opost isig icanon echo ...}) = 0
write(1, " Done reading parameter file for"..., 57) = 57


VS

in the job :

ioctl(1, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS,
0x7fffffff6410) = -1 ENOTTY (Inappropriate ioctl for device)
ioctl(1, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS,
0x7fffffffa630) = -1 ENOTTY (Inappropriate ioctl for device)
fstat(1, {st_mode=S_IFREG|0664, st_size=22753, ...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS,
0x7fffffffa630) = -1 ENOTTY (Inappropriate ioctl for device)
write(1, " Done reading parameter file for"..., 57 Done reading
parameter file for chromosome            7
) = 57
lseek(1, 0, SEEK_CUR^@^@^@^@^@^@^@^@^@^@^@^@^@) 


Version-Release number of selected component (if applicable): 3.10


How reproducible: All the time


Steps to Reproduce:

Heavy workload running a compiled program creating/reading files.


Actual results: file with extra lines of ^@^@^@


Expected results: just eof .


Additional info:

mailing list thread:
http://lists.gluster.org/pipermail/gluster-users/2017-March/030314.html

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


More information about the Bugs mailing list