ID:               42096
 User updated by:  michael202 at gmx dot de
 Reported By:      michael202 at gmx dot de
-Status:           No Feedback
+Status:           Open
 Bug Type:         Streams related
 Operating System: Windows only
 PHP Version:      5.2CVS-2007-07-24
 New Comment:

First I gave up on this issue and switched to drive letters.
Now I tested php 5.3.1 and this bug is fixed !

It must have been an issue with php, because:

I have two parallel installations of php (5.2.6 and 5.3.1) on the same
computer.
If I switch between these I can produce the bug with 5.2.6 and I don't
have it with 5.3.1.

Again: for each access to a file with a UNC path, something truncates
the last character of the share name (here import -> impor) resulting in
hundreds of these error messages (/var/log/samba/log.smbd):

[2009/11/27 18:07:44, 0] smbd/service.c:make_connection(794)
  pro (1.2.7.1) couldn't find service impor

AND resulting in a very high load and a server hard reset.

Thanks !


Previous Comments:
------------------------------------------------------------------------

[2007-09-08 01:00:01] php-bugs at lists dot php dot net

No feedback was provided for this bug for over a week, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".

------------------------------------------------------------------------

[2007-08-31 10:04:20] j...@php.net

As is_dir() uses stat to check whether passed path is directory or not
I doubt this can really be any PHP bug, just another limitiation of
Windows. Try doing the same using something else than PHP and I bet the
result is the same.

And this is totally bogus: echo(is_dir($p) . "\n");
Proto for the function http://php.net/is_dir is:

bool is_dir ( string $filename )

"Returns TRUE if the filename exists and is a directory, FALSE 
otherwise."

------------------------------------------------------------------------

[2007-08-08 09:09:04] michael202 at gmx dot de

running a script that makes a few thousand accesses to a samba server
(that is used by approx. 30 other hosts) causes this server to "crash"
and dismount the samba share.

------------------------------------------------------------------------

[2007-07-25 14:43:22] michael202 at gmx dot de

tested with php5.2-win32-latest.zip
from today morning 2007-07-25 08h08

error is still in there

------------------------------------------------------------------------

[2007-07-25 08:48:13] michael202 at gmx dot de

Description:
------------
calling is_dir() with an UNC path truncates each part of the path. The
last character is missing.

This results in unnecessary errors (on the host side) and slowdowns (on
client side).


Reproduce code:
---------------
windows only (php 5.2.3, Windows XP with cmd.exe) and linux host.

<?php
$p = '\\hostA\volumeB\dirC';
echo(is_dir($p) . "\n");

and then trace network IO for service/port SMB.

Beware of posssible side effects though caching of SMB connections

Expected result:
----------------
no error messages in /var/log/messages on 'hostA'

Actual result:
--------------
I traced these SMB Commands sent over the network:

Connect AndX Request \\hostA\IPC$
Connect AndX Request \\hostA\volume -> STATUS_BAD_NETWORK_NAME
FindFirst2, Pattern: \dir

these are in /var/log/messages in 'hostA'
  ... smbd/service.c:make_connection(252)
  ... couldn't find service volume




I think this is another problem with tsrm_virtual_cwd.c where around
line 500 state_cwd_length is set to 2 if a slash is found at the
beginning. Perhaps the existence of UNC paths is not checked for.



------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=42096&edit=1

Reply via email to