Hi all,
I’ve found a collision problem in the ArticleStorageInit sub of Kernel::System::Ticket::ArticleStorageFS due to an improper creation of $PermissionCheckDirectory.
I’m on OTRS 3.1.8 (I know, I should upgrade, we’re working on that)
First, the log message (which I think should be error level, not notice). I have logs since october 2012 and I’ve found :
[Thu Jan 14 20:21:53 2016][Notice][Kernel::System::Ticket::ArticleStorageFS::ArticleStorageInit] Can't create /opt/otrs/var/article/check_permissions_14423: File exists
Second, the relevant section of the code (Kernel::System::Ticket::ArticleStorageFS, Revision: 1.79.2.2) :
44
my
( $Seconds,
$Microseconds ) =
Time::HiRes::gettimeofday();
45
my
$PermissionCheckDirectory
46
=
"check_permissions_${$}_"
. ( int rand
1_000_000_000
) . "_${Seconds}_${Microseconds}";
47
my
$Path =
"$Self->{ArticleDataDir}/$Self->{ArticleContentPath}/"
. $PermissionCheckDirectory;
48
if
( File::Path::mkpath(
$Path,
0, 0770
) ) { ## no critic
49
rmdir
$Path;
50
}
51
else
{
52
my
$Error = $!;
53
$Kernel::OM->Get('Kernel::System::Log')->Log(
54
Priority
=> 'notice',
55
Message
=> "Can't create
$Path:
$Error, try: \$OTRS_HOME/bin/otrs.SetPermissions.pl!",
56
);
57
die
"Can't create $Path:
$Error, try: \$OTRS_HOME/bin/otrs.SetPermissions.pl!";
58
}
I’ve check the code and it’s the same in the new versions, so no related bug has been found.
And the funny thing, if you compare the logs with the string declaration, the Path in the log only has one underscore ‘_’, when the declaration has four of them!
Does anyone know what could make this declaration stop just after the PID?
Atentamente,
Juan Clavero
_______________________________________________
Oficina de Tecnologies de la Informació i Comunicació
IB-SALUT
Telf. 971 426 530 ext. 3127