Re: [PHP] upload big files

2011-04-17 Thread Tolas Anon
On Thu, Apr 14, 2011 at 10:36 AM, Ricardo Martinez harisel...@gmail.com wrote:
 Hi List!

 Need can upload big files ( around 300MB ) the system must be easy of use (
 cann't use ftp ).

 Was thinking in make it, using a form with post, and update the cfg files
 for can upload big files.
 But don't know how it going to work. I think that can give a lot of errors
 or be unestable.

 Just asking if anyone had a project like this one ;)

 Greetings!


I've got good experiences with http://jumploader.com
It's Java, and can do HTTP uploads  2Gb fine, with the partitioned php uploader

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP] session_start() may take 5 seconds :(

2011-03-31 Thread Tolas Anon
My web-app sometimes takes just over 5 seconds to execute a single
start_session() statement.
No other connections are open to the site when i hit the button that
makes this happen, the session is just 78kb on a local disk, and it's
consistent behavior.
So far, it only happens when i request certain page content via AJAX,
but I'd like to get rid of it asap.
Strangely, some other page content requested under the same conditions
via the same pipeline returns without the delay. It doesn't do
anything differently except the business code, and the session is
opened in app-wide generic code that is executed before the business
code is executed. The very timing with microtime() happens before the
business code executes.

I've already googled, but haven't found anything useful.

It's on a windows box (latest wampserver) and due to a ubuntu firefox
limitation i can't test on linux at the moment, nor run strace on it
:(

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] session_start() may take 5 seconds :(

2011-03-31 Thread Tolas Anon
On Thu, Mar 31, 2011 at 8:10 AM, Negin Nickparsa nickpa...@gmail.com wrote:
 session1.php:
 ?php
 session_start();
 $_SESSION['s1']='sth';
 header(location: session2.php?.SID);
 ?
 session2.php:
 ?php
 session_start();
 if(isset($_SESSION['s1']))
 echo $_SESSION['s1'];
 else
 die(No session!);
 ?



ok, that executes with success and fast..

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP] Re: session_start() may take 5 seconds :(

2011-03-31 Thread Tolas Anon
On Thu, Mar 31, 2011 at 7:58 AM, Tolas Anon tolas...@gmail.com wrote:
 My web-app sometimes takes just over 5 seconds to execute a single
 start_session() statement.
 No other connections are open to the site when i hit the button that
 makes this happen, the session is just 78kb on a local disk, and it's
 consistent behavior.
 So far, it only happens when i request certain page content via AJAX,
 but I'd like to get rid of it asap.
 Strangely, some other page content requested under the same conditions
 via the same pipeline returns without the delay. It doesn't do
 anything differently except the business code, and the session is
 opened in app-wide generic code that is executed before the business
 code is executed. The very timing with microtime() happens before the
 business code executes.

 I've already googled, but haven't found anything useful.

 It's on a windows box (latest wampserver) and due to a ubuntu firefox
 limitation i can't test on linux at the moment, nor run strace on it
 :(


This afternoon, all my business logic had the same delay, due to
session_start().

I bypassed the ubuntu firefox problem and was able to test under
linux; no delay.

So i'll mail the wampserver admin of this problem, and continue under ubuntu.

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP] Re: session_start() may take 5 seconds :(

2011-03-31 Thread Tolas Anon
On Thu, Mar 31, 2011 at 4:53 PM, Tolas Anon tolas...@gmail.com wrote:
 On Thu, Mar 31, 2011 at 7:58 AM, Tolas Anon tolas...@gmail.com wrote:
 My web-app sometimes takes just over 5 seconds to execute a single
 start_session() statement.
 No other connections are open to the site when i hit the button that
 makes this happen, the session is just 78kb on a local disk, and it's
 consistent behavior.
 So far, it only happens when i request certain page content via AJAX,
 but I'd like to get rid of it asap.
 Strangely, some other page content requested under the same conditions
 via the same pipeline returns without the delay. It doesn't do
 anything differently except the business code, and the session is
 opened in app-wide generic code that is executed before the business
 code is executed. The very timing with microtime() happens before the
 business code executes.

 I've already googled, but haven't found anything useful.

 It's on a windows box (latest wampserver) and due to a ubuntu firefox
 limitation i can't test on linux at the moment, nor run strace on it
 :(


 This afternoon, all my business logic had the same delay, due to
 session_start().

 I bypassed the ubuntu firefox problem and was able to test under
 linux; no delay.

 So i'll mail the wampserver admin of this problem, and continue under ubuntu.

http://www.wampserver.com/phorum/read.php?2,72729

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP] Re: ob_flush, does it cause data to be sent over the wire immediately?

2011-02-11 Thread Tolas Anon
On Fri, Feb 11, 2011 at 4:05 AM, Tolas Anon tolas...@gmail.com wrote:
 Hi..

 For my curl_exec problem,
 http://readlist.com/lists/lists.php.net/php-general/16/81195.html
 http://curl.haxx.se/mail/lib-2011-02/0101.html

 I need to know if this simple test will cause data to be sent every 25
 seconds _over the wire_.

 ?php
 set_time_limit (0);
 error_reporting (E_ALL);
 for ($i=0; $i((3600+1800)/25); $i++) {
        echo '.';
        ob_flush();
        sleep (25);
 };
 echo wanted-data;
 ?

 reason; i just can't get my media import routines that only send
 sporadic status messages to work for big video files.


well, first off i should be using php:flush() instead of
php:ob_flush() in my simple test.

second;
http://www.php.net/manual/en/function.flush.php :


Several servers, especially on Win32, will still buffer the output
from your script until it terminates before transmitting the results
to the browser.
.


aargh..

well, i'll have to dig deep here.

will inform you of any relevant progress, digest style

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP] [SOLVED] Re: [PHP] curl_exec won't return (any data)

2011-02-11 Thread Tolas Anon
fromTolas Anon tolas...@gmail.com
to  libcurl development curl-libr...@cool.haxx.se
dateFri, Feb 11, 2011 at 5:09 PM
subject Re: php curl_exec won't return any data, libcurl-7.21.3.0, php
5.3.4, WampServer2.1d-x64.exe
mailed-by   gmail.com

On Fri, Feb 11, 2011 at 1:32 PM, Daniel Stenberg dan...@haxx.se wrote:
 On Fri, 11 Feb 2011, Tolas Anon wrote:

 It is also very easy for an application to enable the options as I've
 shown.

 Just not for the platforms i use, apparently.. :(

 Why not? A quick search for tcp keepalive windows shows this:
 http://msdn.microsoft.com/en-us/library/ms819735.aspx


BUYAKAA! This fixed my problem in the simple test AND in my application!
No need to send keep-alive bytes on the text/html level either.

I just added the KeepAliveTime setting with windows 7 regedit.exe in
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/Tcpip, as a
REG_DWORD value, set it to decimal 25000 (so 25 seconds), rebooted,
and it all works as i want it now..

Note that windows registry entries key names are case-sensitive, wrong
casing and they'll be deleted on restart.

Lots of thanks, Daniel. I would've never solved this on my own..

I'll make an entry in the php.net website comments about this.

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP] ob_flush, does it cause data to be sent over the wire immediately?

2011-02-10 Thread Tolas Anon
Hi..

For my curl_exec problem,
http://readlist.com/lists/lists.php.net/php-general/16/81195.html
http://curl.haxx.se/mail/lib-2011-02/0101.html

I need to know if this simple test will cause data to be sent every 25
seconds _over the wire_.

?php
set_time_limit (0);
error_reporting (E_ALL);
for ($i=0; $i((3600+1800)/25); $i++) {
echo '.';
ob_flush();
sleep (25);
};
echo wanted-data;
?

reason; i just can't get my media import routines that only send
sporadic status messages to work for big video files.

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] curl_exec won't return (any data)

2011-02-09 Thread Tolas Anon
exec-sum update :

details continued at http://curl.haxx.se/mail/lib-2011-02/0101.html

it turns out using the internetdomainname of the apache server is the
source of the problem.
the adsl router could be dropping the connection, or something else.

calling curl_exec() to a localhost address will work fine for the time
that it takes.
(no traffic back for 1hr, then a short status msg only)

however my media import routines are useless if i only can use 'm on localhost.

so the idea i will try tommorow is outputting keepalive weird-bytes on
the text/html level
from the php_script import-script, and then stripping them in php_daemon_script.

i would like to know if i can use feof() to check that ffmpeg launched
via popen() has terminated..
i think so, but the docs aren't perfectly clear.

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP] curl_exec won't return (any data)

2011-02-08 Thread Tolas Anon
Hi..

For a set of media import routines, i'm using a
javascript-php_on_apache-windows.bat-php_cli-curl-php_script invocation
method.
It seems longwinded, but it's designed to have different parts of the import
process run on different servers.

I'm stuck at getting curl_exec() to return the data of the final php_script
that does the importing.
The script itself runs fine, and i've recorded good details that curl_exec()
is supposed to catch with file_put_contents(/some/debug.txt,
json_encode($returnArray)), and from those debug-printouts it's just a few
tiny steps towards a cascade of return statements, followed by a
echo(json_encode($returnArray)) and a normal end to the php_script at the
end of the call chain.

However, curl_exec() seems to hang completely. I've added over a dozen
debuginfo - file on server statements, and the one that should fire
straight after curl_exec() does not fire.

It does this only with large (1.8gb) video files, a smaller (60mb) video
file doesn't produce this problem and the entire import routines work fine
then.

I'd very much appreciate any tips you might have for me.


Re: [PHP] curl_exec won't return (any data)

2011-02-08 Thread Tolas Anon
On Tue, Feb 8, 2011 at 1:35 PM, Ashley Sheridan 
a...@ashleysheridan.co.ukwrote:

 On Tue, 2011-02-08 at 13:24 +0100, Tolas Anon wrote:

  Hi..
 
  For a set of media import routines, i'm using a
  javascript-php_on_apache-windows.bat-php_cli-curl-php_script
 invocation
  method.
  It seems longwinded, but it's designed to have different parts of the
 import
  process run on different servers.
 
  I'm stuck at getting curl_exec() to return the data of the final
 php_script
  that does the importing.
  The script itself runs fine, and i've recorded good details that
 curl_exec()
  is supposed to catch with file_put_contents(/some/debug.txt,
  json_encode($returnArray)), and from those debug-printouts it's just a
 few
  tiny steps towards a cascade of return statements, followed by a
  echo(json_encode($returnArray)) and a normal end to the php_script at the
  end of the call chain.
 
  However, curl_exec() seems to hang completely. I've added over a dozen
  debuginfo - file on server statements, and the one that should fire
  straight after curl_exec() does not fire.
 
  It does this only with large (1.8gb) video files, a smaller (60mb) video
  file doesn't produce this problem and the entire import routines work
 fine
  then.
 
  I'd very much appreciate any tips you might have for me.


 Let me see if I've got this right.

 The windows.bat is processing the media file somehow, then calling a
 php_cli script which makes a cURL call to another web-based PHP script?
 Is this right? The final script I assume is getting sent some info from
 the cURL call and is using it somehow (in a DB maybe?) before some sort
 of message back to your curl call. What is the code then doing with it
 after that?

 Thanks,
 Ash
 http://www.ashleysheridan.co.uk



oops, i missed a step (php_daemon_script) in the chain of calls;

it's : javascript - php_on_apache - windows.bat - php_cli -
php_daemon_script - curl_exec - php_script

followed by calls-until-finished from javascript that read the status of
php_script via json files written to the server and thus display the status
to the end-user..

the windows.bat just starts up cli-php with admin privileges, which executes
the php_daemon_script, which uses repetitive curl calls to the import-script
(php_script at the end of my chain) that does all the work for a single
item in the total upload/import queue; it does video conversion with
exec(/path/to/ffmpeg), photo conversion with imagemagick, and updates the db
with the php adodb library.
php_script at the end of it's work returns a simple and short status array
(json_encode()d) to the php_daemon_script via curl_exec, that dictates if
the php_daemon_script should continue calling the (import) php_script more
times.

it's curl_exec that hangs/freezes, both with using CURLOPT_RETURNTRANSFER=1,
or capturing output with ob_start() and ob_get_clean(). i've gathered that
much from my custom debug logs.


Fwd: [PHP] curl_exec won't return (any data)

2011-02-08 Thread Tolas Anon
-- Forwarded message --
From: Tolas Anon tolas...@gmail.com
Date: Tue, Feb 8, 2011 at 1:56 PM
Subject: Re: [PHP] curl_exec won't return (any data)
To: a...@ashleysheridan.co.uk




On Tue, Feb 8, 2011 at 1:50 PM, Tolas Anon tolas...@gmail.com wrote:



 On Tue, Feb 8, 2011 at 1:35 PM, Ashley Sheridan 
 a...@ashleysheridan.co.ukwrote:

 On Tue, 2011-02-08 at 13:24 +0100, Tolas Anon wrote:

  Hi..
 
  For a set of media import routines, i'm using a
  javascript-php_on_apache-windows.bat-php_cli-curl-php_script
 invocation
  method.
  It seems longwinded, but it's designed to have different parts of the
 import
  process run on different servers.
 
  I'm stuck at getting curl_exec() to return the data of the final
 php_script
  that does the importing.
  The script itself runs fine, and i've recorded good details that
 curl_exec()
  is supposed to catch with file_put_contents(/some/debug.txt,
  json_encode($returnArray)), and from those debug-printouts it's just a
 few
  tiny steps towards a cascade of return statements, followed by a
  echo(json_encode($returnArray)) and a normal end to the php_script at
 the
  end of the call chain.
 
  However, curl_exec() seems to hang completely. I've added over a dozen
  debuginfo - file on server statements, and the one that should fire
  straight after curl_exec() does not fire.
 
  It does this only with large (1.8gb) video files, a smaller (60mb) video
  file doesn't produce this problem and the entire import routines work
 fine
  then.
 
  I'd very much appreciate any tips you might have for me.


 Let me see if I've got this right.

 The windows.bat is processing the media file somehow, then calling a
 php_cli script which makes a cURL call to another web-based PHP script?
 Is this right? The final script I assume is getting sent some info from
 the cURL call and is using it somehow (in a DB maybe?) before some sort
 of message back to your curl call. What is the code then doing with it
 after that?

 Thanks,
 Ash
 http://www.ashleysheridan.co.uk



 oops, i missed a step (php_daemon_script) in the chain of calls;

 it's : javascript - php_on_apache - windows.bat - php_cli -
 php_daemon_script - curl_exec - php_script

 followed by calls-until-finished from javascript that read the status of
 php_script via json files written to the server and thus display the status
 to the end-user..

 the windows.bat just starts up cli-php with admin privileges, which
 executes the php_daemon_script, which uses repetitive curl calls to the
 import-script (php_script at the end of my chain) that does all the work
 for a single item in the total upload/import queue; it does video conversion
 with exec(/path/to/ffmpeg), photo conversion with imagemagick, and updates
 the db with the php adodb library.
 php_script at the end of it's work returns a simple and short status array
 (json_encode()d) to the php_daemon_script via curl_exec, that dictates if
 the php_daemon_script should continue calling the (import) php_script more
 times.

 it's curl_exec that hangs/freezes, both with using CURLOPT_RETURNTRANSFER=1,
 or capturing output with ob_start() and ob_get_clean(). i've gathered that
 much from my custom debug logs.


both php_daemon_script and php_script should use ini_set
('max_execution_time',0);


but i just saw that php_daemon_script does not!!
that might be my error, i hope.

i'll let you know in about 1 hour when my test completes..


Re: [PHP] Paging and permissions

2011-02-08 Thread Tolas Anon
On Tue, Feb 8, 2011 at 1:36 PM, Arno Kuhl ak...@telkomsa.net wrote:

 I'm hoping some clever php gurus have been here before and are willing to
 share some ideas.

 I have a site where articles are assigned to categories in containers. An
 article can be assigned to only one category per container, but one or more
 containers. Access permissions can be set per article, per category and/or
 per container, for one or more users and/or user groups. If an article is
 assigned to 10 categories and only one of those has a permission denying
 access, then the article can't be accessed even if browsing through one of
 the other 9 categories. Currently everything works fine, with article
 titles
 showing when browsing through category or search result lists, and a
 message
 is displayed when the article is clicked if it cannot be viewed because of
 a
 permission.

 Now there's a requirement to not display the article title in category
 lists
 and search results if it cannot be viewed. I'm stuck with how to determine
 the number of results for paging at the start of the list or search. The
 site is quite large (20,000+ articles and growing) so reading the entire
 result set and sifting through it with permission rules for each request is
 not an option. But it might be an option if done once at the start of each
 search or list request, and then use that temporary modified result set for
 subsequent requests on the same set. I thought of saving the set to a
 temporary db table or file (not sure about overhead of
 serializing/unserializing large arrays). A sizing exercise based on the
 recordset returned for searches and lists shows a max of about 150MB for
 20,000 articles and 380MB for 50,000 articles that needs to be saved
 temporarily per search or list request - in the vast majority of cases the
 set will be *much* smaller but it needs to cope with the worst case, and
 still do so a year down the line.

 All this extra work because I can't simply get an accurate number of
 results
 for paging, because of permissions!

 So my questions are:
 1. Which is better (performance) for this situation: file or db?
 2. How do I prepare a potentially very large data set for file or fast
 writing to a new table (ie I obviously don't want to write it record by
 record)
 3. Are there any other alternatives worth looking at?

 TIA

 Cheers
 Arno


Seems to me you make your setup needlessly complicated and restrictive.

And it's bad form to display articles in search results that aren't allowed
to be viewed..

Tell us more about why you want it to be so restrictive, i just don't
understand it.


Re: [PHP] curl_exec won't return (any data)

2011-02-08 Thread Tolas Anon
ok, i've done another run, this time with both php_daemon_script and
php_script allowed to run indefinitely, and i've triple-checked my
results..

- all the calls to convert and import the +-2gb video file in
php_script (the import-worker-script) complete just fine, they update
a debug file on the server with correct results. from there it's just
a few simple steps back to curl_exec(), which i've tripple-checked to
be followed correctly, with more print-to-seperate-debug-file
statements.

- the call to curl_exec() in launched by php_daemon_script never
completes. i've added a print-to-debug-file statement right after
curl_exec() there, and it does NOT update that debug file. previous
experience shows that this is true for curl_setopt
(CURLOPT_RETURNTRANSFER,1) aswell as
ob_start();curl_exec(blah);file_put_contents(/path/to/debug-file-N.txt,ob_get_clean()).

- the php_daemon_script continues to run in my debug window (i now
launch windows.bat manually), it does not crash/end, it freezes. and
from experience i can tell you that it will stay frozen for several
hours, not doing anything anymore.

i've run out of ideas :(

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] curl_exec won't return (any data)

2011-02-08 Thread Tolas Anon
for completeness, i'll say that i'm using libcurl-7.21.3, and (again)
that these import routines work without problems for smaller video
files (tested with +-60mb vid file).

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] curl_exec won't return (any data)

2011-02-08 Thread Tolas Anon
also: the vid file itself is converted correctly too, and inserted
into my db correctly.
i can even view the converted flv and it has the correct length and everything!

it's just that the frigging import won't continue with the rest of the
files in the queue..
it's maddening! ;-)

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] curl_exec won't return (any data)

2011-02-08 Thread Tolas Anon
On Tue, Feb 8, 2011 at 3:39 PM, Tolas Anon tolas...@gmail.com wrote:
 also: the vid file itself is converted correctly too, and inserted
 into my db correctly.
 i can even view the converted flv and it has the correct length and 
 everything!

 it's just that the frigging import won't continue with the rest of the
 files in the queue..
 it's maddening! ;-)


eh, view the converted flv _in_ the cms that does the importing, as
an end-user of the cms would.

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] curl_exec won't return (any data)

2011-02-08 Thread Tolas Anon
the one thing i can think of is that curl_exec() somehow stops
listening for results and hangs the calling php script
(php_daemon_script in this case) if it does not receive any data for
more than a few minutes (converting the 60mb vid file takes about a
minute, and the 2gb script well over 30 minutes)..

however i haven't been able to find any bugreports via google that
describe this bug..

could it be i found a new bug in libcurl?...

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] curl_exec won't return (any data)

2011-02-08 Thread Tolas Anon
Things I've checked in the meanwhile;

curl_setopt($ch,CURLOPT_TIMEOUT, 0); and
curl_setopt($ch,CURLOPT_TIMEOUT, 9); have the same freezing
results as before

I've used a packetsniffer to analyze the dataflow on my port 80, with
all other http apps incl the browser not in memory/running, so i could
get a clear view.
Turns out i do get the traffic my php_daemon_script relies on and
should get from curl_exec() when the 2gb video file has finished
converting  importing, flowing from an 192.xyz.xyz.xyz address (which
is my apache) to a 82.xyz.xyz.xyz address (also resolves to my
apache).

I currently run the entire site, upload and import on the same machine
and instance of apache.
And the import was run from that windows.bat again, which i had
running as a normal dos window.
I made sure the sniffer caught both the initialization of the
offending 2gb-convert call, and it's termination, which i monitored by
monitoring the server filesystem (the size of the converted vid, and
the fact it got moved into it's final directory for serving to the
end-user).

This apache installation is on an adsl modem that does
outside-to-inside port 80 forwarding to my windows apache
installation, and i use the outside-world domain name linked to my
adsl IP for the site and upload and import.

However, this wanted traffic is reported by wireshark (the sniffer)
as having an invalid 0x header checksum, which should be
something else (a hex value of course).
The packet flow is like this:
192... - 82... : HTTP/1.1 200 OK (text/html) {wanted data}
192... - 82... : RETRANSMISSION HTTP/1.1 200 OK (text/html) {wanted data}
192... - 82... : HTTP  portno [FIN,ACK] seq=... ack=... win=. len=0
192... - 82... : RETRANSMISSION HTTP/1.1 200 OK (text/html) {wanted data}
192... - 82... : RETRANSMISSION HTTP/1.1 200 OK (text/html) {wanted data}
192... - 82... : RETRANSMISSION HTTP/1.1 200 OK (text/html) {wanted data}
192... - 82... : RETRANSMISSION HTTP/1.1 200 OK (text/html) {wanted data}
192... - 82... : HTTP  portno [RST,ACK] seq=... ack=... win=0 len=0
After this the http capturing goes silent again.

The wanted packet does not show up in the debug-info-to-file call made
by the php_daemon_script just after it does
$result=curl_exec(valid-settings);

I don't use sniffers often, so i have to ask;

Is this enough evidence to report it as a libcurl bug?
Or do i have to suspect php-cli and cmd.exe as well?



P.S.;
Entire WAMP installed by WampServer2.1d-x64.exe
PHP Version 5.3.4

System  Windows NT NOOT 6.1 build 7600 (Unknow Windows version Home
Premium Edition) AMD64
Build Date  Dec 15 2010 23:40:06
CompilerMSVC9 (Visual C++ 2008)
Architecturex64

libcurl-7.21.3.0 added manually

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] curl_exec won't return (any data)

2011-02-08 Thread Tolas Anon
On Tue, Feb 8, 2011 at 7:01 PM, Tolas Anon tolas...@gmail.com wrote:
 Things I've checked in the meanwhile;

 curl_setopt($ch,CURLOPT_TIMEOUT, 0); and
 curl_setopt($ch,CURLOPT_TIMEOUT, 9); have the same freezing
 results as before

 I've used a packetsniffer to analyze the dataflow on my port 80, with
 all other http apps incl the browser not in memory/running, so i could
 get a clear view.
 Turns out i do get the traffic my php_daemon_script relies on and
 should get from curl_exec() when the 2gb video file has finished
 converting  importing, flowing from an 192.xyz.xyz.xyz address (which
 is my apache) to a 82.xyz.xyz.xyz address (also resolves to my
 apache).

 I currently run the entire site, upload and import on the same machine
 and instance of apache.
 And the import was run from that windows.bat again, which i had
 running as a normal dos window.
 I made sure the sniffer caught both the initialization of the
 offending 2gb-convert call, and it's termination, which i monitored by
 monitoring the server filesystem (the size of the converted vid, and
 the fact it got moved into it's final directory for serving to the
 end-user).

 This apache installation is on an adsl modem that does
 outside-to-inside port 80 forwarding to my windows apache
 installation, and i use the outside-world domain name linked to my
 adsl IP for the site and upload and import.

 However, this wanted traffic is reported by wireshark (the sniffer)
 as having an invalid 0x header checksum, which should be
 something else (a hex value of course).
 The packet flow is like this:
 192... - 82... : HTTP/1.1 200 OK (text/html) {wanted data}
 192... - 82... : RETRANSMISSION HTTP/1.1 200 OK (text/html) {wanted data}
 192... - 82... : HTTP  portno [FIN,ACK] seq=... ack=... win=. len=0
 192... - 82... : RETRANSMISSION HTTP/1.1 200 OK (text/html) {wanted data}
 192... - 82... : RETRANSMISSION HTTP/1.1 200 OK (text/html) {wanted data}
 192... - 82... : RETRANSMISSION HTTP/1.1 200 OK (text/html) {wanted data}
 192... - 82... : RETRANSMISSION HTTP/1.1 200 OK (text/html) {wanted data}
 192... - 82... : HTTP  portno [RST,ACK] seq=... ack=... win=0 len=0
 After this the http capturing goes silent again.

 The wanted packet does not show up in the debug-info-to-file call made
 by the php_daemon_script just after it does
 $result=curl_exec(valid-settings);

 I don't use sniffers often, so i have to ask;

 Is this enough evidence to report it as a libcurl bug?
 Or do i have to suspect php-cli and cmd.exe as well?



 P.S.;
 Entire WAMP installed by WampServer2.1d-x64.exe
 PHP Version 5.3.4

 System  Windows NT NOOT 6.1 build 7600 (Unknow Windows version Home
 Premium Edition) AMD64
 Build Date      Dec 15 2010 23:40:06
 Compiler        MSVC9 (Visual C++ 2008)
 Architecture    x64

 libcurl-7.21.3.0 added manually


I've been thinking about that reported bad checksum. libcurl may be
right to reject those packets.
And i guess that apache determines that 0x checksum.
That is, _if_ i can trust the accuracy of that wireshark app.

Bit too many variables at work here for my liking, but this bug just
has to get fixed.

I guess i'll un-install wireshark, install a different sniffer app and
re-do the whole thing, i'll let you know the results when they are in.

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] curl_exec won't return (any data)

2011-02-08 Thread Tolas Anon
ok, did another run with a different packet analyzer, one that does

not have winPcap under the hood like WireShark does. I chose

microsoft network monitor 3.4 for the task.

the launch of the 2gb vid import (only part by curl_exec):

format:
packetnumber[TAB] time_date_local_adjusted[TAB] time_offset[TAB]

processname[TAB] source[TAB] destination[TAB] protocolname[TAB]

description[TAB] conv_id[TAB] tolas_comment

134 19:50:08 8-2-2011   31.2774633  Unavailable 

WindowsNameOfApacheServer   InternetDomainOfApacheServerHTTP

HTTP:Request, POST /site/cms/php/php_(import_)script.php,

Query:PHPSESSID=o365inhor0ln8mqdr0p8vb3rm7action=batchNext 

{HTTP:40, TCP:38, IPv4:8}   

135 19:50:08 8-2-2011   31.2777843  Unavailable 

InternetDomainOfApacheServerWindowsNameOfApacheServer   TCP 

TCP:Flags=...A, SrcPort=3573, DstPort=HTTP(80), PayloadLen=0,

Seq=1169302766, Ack=4118332969, Win=260 (scale factor 0x8) = 66560  

{TCP:39, IPv4:8}

136 19:50:08 8-2-2011   31.2781472  Unavailable 

InternetDomainOfApacheServerWindowsNameOfApacheServer   HTTP

HTTP:Request, POST /site/cms/php/php_(import_)script.php,

Query:PHPSESSID=o365inhor0ln8mqdr0p8vb3rm7action=batchNext 

{HTTP:41, TCP:39, IPv4:8}

138 19:50:08 8-2-2011   31.4807963  Unavailable 

WindowsNameOfApacheServer   InternetDomainOfApacheServerTCP 

TCP:Flags=...A, SrcPort=HTTP(80), DstPort=3573, PayloadLen=0,

Seq=4118332969, Ack=1169303037, Win=260 (scale factor 0x8) = 66560  

{TCP:39, IPv4:8}

139 19:50:08 8-2-2011   31.4859769  Unavailable 

InternetDomainOfApacheServerWindowsNameOfApacheServer   TCP 

TCP:Flags=...A, SrcPort=HTTP(80), DstPort=3573, PayloadLen=0,

Seq=4118332969, Ack=1169303037, Win=260 (scale factor 0x8) = 66560  

{TCP:38, IPv4:8}

140 19:50:08 8-2-2011   31.6234279  adsl-router 

WindowsNameOfApacheServer   TCP TCP:Flags=..S.,

SrcPort=2456, DstPort=14013, PayloadLen=0, Seq=1335058890, Ack=0,

Win=5840 ( Negotiating scale factor 0x2 ) = 5840{TCP:42,

IPv4:4}

141 19:50:11 8-2-2011   34.6104085  adsl-router 

WindowsNameOfApacheServer   TCP TCP:[SynReTransmit #140]

Flags=..S., SrcPort=2456, DstPort=14013, PayloadLen=0,

Seq=1335058890, Ack=0, Win=5840 ( Negotiating scale factor 0x2 ) =

5840{TCP:42, IPv4:4}

Packet 137 = adsl-router discovery traffic, not relevant.





Then, after 45 minutes or so, the completion of the conversion and
import, with the wanted data sent back to curl_exec() running from
php-cli, which was started by windows.bat

Some other (network discovery) traffic is likely mixed in, I added it
to be on the safe side.

590120:32:45 8-2-2011   2588.7346959Unavailable 
WindowsNameOfApacheServer
InternetNameOfApacheServer  HTTPHTTP:Response, HTTP/1.1, 
Status: Ok,
URL: /site/cms/php/php_(import_)script.php  {HTTP:41, TCP:39, IPv4:8}
{{CONTAINS THE WANTED DATA}}

590220:32:45 8-2-2011   2588.7354838
InternetNameOfApacheServer  WindowsNameOfApacheServer
ICMPICMP:Destination Unreachable Message, Communication
Administratively Prohibited, 82.161.37.94   {IPv4:8}

590320:32:48 8-2-2011   2591.6092751
FE80:0:0:0:E579:89FF:369D:668B  FF02:0:0:0:0:0:0:C  SSDPSSDP:Request,
M-SEARCH *  {HTTP:3, UDP:2, IPv6:1}

590420:32:48 8-2-2011   2591.7421833Unavailable 
WindowsNameOfApacheServer
InternetNameOfApacheServer  TCP TCP:[ReTransmit 
#5901]Flags=...AP...,
SrcPort=HTTP(80), DstPort=3573, PayloadLen=558, Seq=4118332969 -
4118333527, Ack=1169303037, Win=260 (scale factor 0x8) =
66560   {TCP:39, IPv4:8}

590520:32:48 8-2-2011   2591.7452755
InternetNameOfApacheServer  WindowsNameOfApacheServer
ICMPICMP:Destination Unreachable Message, Communication
Administratively Prohibited, 82.161.37.94   {IPv4:8}

590620:32:49 8-2-2011   2592.4183261192.168.178.1   
WindowsNameOfApacheServer
TCP TCP:Flags=..S., SrcPort=2119, DstPort=14013, PayloadLen=0,
Seq=4038649047, Ack=0, Win=5840 ( Negotiating scale factor 0x2 ) =
5840{TCP:1001, IPv4:4}

590720:32:51 8-2-2011   2594.2343496Unavailable 
WindowsNameOfApacheServer
InternetNameOfApacheServer  TCP TCP:Flags=...A...F, 
SrcPort=HTTP(80),
DstPort=3573, PayloadLen=0, Seq=4118333527, Ack=1169303037, Win=260
(scale factor 0x8) = 66560  {TCP:39, IPv4:8}

590820:32:51 8-2-2011   2594.2349872
InternetNameOfApacheServer  WindowsNameOfApacheServer
ICMPICMP:Destination Unreachable Message, Communication
Administratively Prohibited, 82.161.37.94   {IPv4:8}

590920:32:52 8-2-2011   2595.4057840192.168.178.1   
WindowsNameOfApacheServer
TCP  

Re: [PHP] curl_exec won't return (any data)

2011-02-08 Thread Tolas Anon
On Tue, Feb 8, 2011 at 8:54 PM, Tolas Anon tolas...@gmail.com wrote:
 But in the meanwhile I found a new idea to try as well;

        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
                        'Connection: Keep-Alive',
                        'Keep-Alive: 300'
        ));

 I already checked via phpinfo() that keep-alive is on in
 apache2handler, and no other mentions of keepalive or keep alive
 in the phpinfo() output.

 I'll post the results.


ehm

http://www.io.com/~maus/HttpKeepAlive.html :

HTTP/1.0

Under HTTP 1.0, there is no official specification for how keepalive
operates. It was, in essence, tacked on to an existing protocol. If
the browser supports keep-alive, it adds an additional header to the
request:
Connection: Keep-Alive

Then, when the server receives this request and generates a response,
it also adds a header to the response:
Connection: Keep-Alive

Following this, the connection is NOT dropped, but is instead kept
open. When the client sends another request, it uses the same
connection. This will continue until either the client or the server
decides that the conversation is over, and one of them drops the
connection.

-
HTTP/1.1

Under HTTP 1.1, the official keepalive method is different. All
connections are kept alive, unless stated otherwise with the following
header:
Connection: close

The Connection: Keep-Alive header no longer has any meaning because of this.
Additionally, an optional Keep-Alive: header is described, but is so
underspecified as to be meaningless. Avoid it.

-

And of course, my return data packet 5901 uses HTTP1.1, so the test
i'm running now probably won't fix things.. :(((

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] curl_exec won't return (any data)

2011-02-08 Thread Tolas Anon
On Tue, Feb 8, 2011 at 9:33 PM, Steve Staples sstap...@mnsi.net wrote:
 i've been sorta reading this (as I am sure most maybe stopped after the
 4th consecutive post)...

yea, i feel i gotta be complete so as to not waste the time of people
who do wanna help.

 but what I am wondering is...

 why can't you just write the output of the what you're doing to a file,
 or the db, and then query along the way or when you need/want some
 information on it??   Maybe i just haven't quite figured out, or got the
 gist of what you are trying to accomplish...

That's exactly what i'm doing.
I need curl_exec() to absorb the response to requests that take over
1hr to complete, because i want to be able to run different parts of
the media import process on different servers.

 it also seems to me, that this really isn't a PHP specific issue, so all
 the posts that you're doing, really doesn't pertain to the PHP mailing
 list, so (and sorry to say this) maybe stop posting all the incremental
 updates you're doing, and when there is a major break through, or
 someone has an idea on how to help solve your issue, update us.

 Steve.

I wish to have a complete log of this bughunt somewhere online, one of
the many websites with the php mailing list content will do nicely.

I suppose i could've chosen to subscribe to the libcurl mailinglist,
but this seemed a good place because i thought to find many people
that use libcurl in different ways here.
And at the start it could've been the php-cli, or the apache, or the
lib-curl, i just didn't know.

Even though lib-curl atm looks the more likely suspect, i'll continue
this log here.

If you don't like it, don't read it.
With a decent mail reader it is shoved under 1 header anyways.

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] curl_exec won't return (any data)

2011-02-08 Thread Tolas Anon
On Tue, Feb 8, 2011 at 11:01 PM, Tolas Anon tolas...@gmail.com wrote:
 Ok, another run, this time after adding the following to
 php_daemon_script;

        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
                        'Connection: Keep-Alive',
                        'Keep-Alive: 300'
        ));

 Exec-sum:
 No change whatsoever in behaviour, curl_exec still freezes after
 processing the 2gb file completely. ~maus was right.

 Since i create the folder in the cms to hold the media-imported
 files before starting the import, i can view the offending 2gb video
 as an end-user of my cms. but files that were behind the 2gb video
 in the queue never get imported because curl_exec (or something
 feeding it) has frozen.

 It could be that apache sends the wrong packets, or libcurl rejects
 'good' packets, or libcurl just froze completely. I might not have
 thought of all possibilities though, that's one of the reasons I
 post these mails.

 I've run out of ideas again..
 And since i've been at it since 05:00, i'll get some sleep now..

 opening bell of 2gb import, microsoft network monitor 3.4 again:


 89268   21:48:23 8-2-2011       314.7693867     Unavailable-4920

 InternetDomainNameOfApacheServer        WindowsNameOfApacheServer

 HTTP    HTTP:Request, POST /site/cms/php/php_(import_)script.php,

 Query:PHPSESSID=bhgnqukbn4v0dbbv25i14ca2o4action=batchNext

 {HTTP:112, TCP:110, IPv4:1} {{ALL GOOD DATA}}


 And the closing bell (the omissions are there because i let the

 sniffer app filter by process id - ip-address) :

 363     22:31:16 8-2-2011       676.1139552     Unavailable-4920
 WindowsNameOfApacheServer       InternetDomainOfApacheServer    HTTP
 HTTP:Response, HTTP/1.1, Status: Ok, URL:{OMMITTED BECAUSE OF MEMORY
 EXHAUSTION-KILL OF SNIFFER APP}        {HTTP:31, TCP:30, IPv4:29}
 {{CONTAINS THE WANTED DATA}}

 367     22:31:19 8-2-2011       679.1089487     Unavailable-4920
 WindowsNameOfApacheServer       InternetDomainOfApacheServer    TCP
 TCP:[ReTransmit #363]Flags=...AP..., SrcPort=HTTP(80), DstPort=8372,
 PayloadLen=614, Seq=3326586000 - 3326586614, Ack=3291710338, Win=260
 {TCP:30, IPv4:29}

 372     22:31:21 8-2-2011       681.6189851     Unavailable-4920
 WindowsNameOfApacheServer       InternetDomainOfApacheServer    TCP
 TCP:Flags=...A...F, SrcPort=HTTP(80), DstPort=8372, PayloadLen=0,
 Seq=3326586614, Ack=3291710338, Win=260 {TCP:30, IPv4:29}

 376     22:31:25 8-2-2011       685.1089219     Unavailable-4920
 WindowsNameOfApacheServer       InternetDomainOfApacheServer    TCP
 TCP:[ReTransmit #363]Flags=...AP..F, SrcPort=HTTP(80), DstPort=8372,
 PayloadLen=614, Seq=3326586000 - 3326586615, Ack=3291710338, Win=260
 {TCP:30, IPv4:29}

 384     22:31:37 8-2-2011       697.1089168     Unavailable-4920
 WindowsNameOfApacheServer       InternetDomainOfApacheServer    TCP
 TCP:[ReTransmit #363]Flags=...AP..F, SrcPort=HTTP(80), DstPort=8372,
 PayloadLen=614, Seq=3326586000 - 3326586615, Ack=3291710338, Win=260
 {TCP:30, IPv4:29}

 400     22:32:01 8-2-2011       721.1089938     Unavailable-4920
 WindowsNameOfApacheServer       InternetDomainOfApacheServer    TCP
 TCP:[ReTransmit #363]Flags=...AP..F, SrcPort=HTTP(80), DstPort=8372,
 PayloadLen=614, Seq=3326586000 - 3326586615, Ack=3291710338, Win=260
 {TCP:30, IPv4:29}

 431     22:32:49 8-2-2011       769.1090750     Unavailable-4920
 WindowsNameOfApacheServer       InternetDomainOfApacheServer    TCP
 TCP:[ReTransmit #363]Flags=...AP..F, SrcPort=HTTP(80), DstPort=8372,
 PayloadLen=614, Seq=3326586000 - 3326586615, Ack=3291710338, Win=260
 {TCP:30, IPv4:29}

 485     22:33:49 8-2-2011       829.1041446     Unavailable-4920
 WindowsNameOfApacheServer       InternetDomainOfApacheServer    TCP
 TCP:Flags=...A.R.., SrcPort=HTTP(80), DstPort=8372, PayloadLen=0,
 Seq=3326586615, Ack=3291710338, Win=0   {TCP:30, IPv4:29}

 550     22:35:38 8-2-2011       938.7487524     Unavailable-676
 WindowsNameOfApacheServer       InternetDomainOfApacheServer    TCP
 TCP:Flags=...A.R.., SrcPort=8372, DstPort=HTTP(80), PayloadLen=0,
 Seq=3291710338, Ack=3326586000, Win=0   {TCP:59, IPv4:29}

 551     22:35:38 8-2-2011       938.7514250     Unavailable-4920
 InternetDomainOfApacheServer    WindowsNameOfApacheServer       TCP
 TCP:Flags=...A.R.., SrcPort=8372, DstPort=HTTP(80), PayloadLen=0,
 Seq=3291710338, Ack=3326586000, Win=0   {TCP:60, IPv4:29}


 Please note that packet 550 was apparently from a different cpu
 process.


oh, packet number 363 has HTTP/1.1 as the protocol version..

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] curl_exec won't return (any data)

2011-02-08 Thread Tolas Anon
Ok, another run, this time after adding the following to
php_daemon_script;

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Connection: Keep-Alive',
'Keep-Alive: 300'
));

Exec-sum:
No change whatsoever in behaviour, curl_exec still freezes after
processing the 2gb file completely. ~maus was right.

Since i create the folder in the cms to hold the media-imported
files before starting the import, i can view the offending 2gb video
as an end-user of my cms. but files that were behind the 2gb video
in the queue never get imported because curl_exec (or something
feeding it) has frozen.

It could be that apache sends the wrong packets, or libcurl rejects
'good' packets, or libcurl just froze completely. I might not have
thought of all possibilities though, that's one of the reasons I
post these mails.

I've run out of ideas again..
And since i've been at it since 05:00, i'll get some sleep now..

opening bell of 2gb import, microsoft network monitor 3.4 again:


89268   21:48:23 8-2-2011   314.7693867 Unavailable-4920

InternetDomainNameOfApacheServerWindowsNameOfApacheServer   

HTTPHTTP:Request, POST /site/cms/php/php_(import_)script.php,

Query:PHPSESSID=bhgnqukbn4v0dbbv25i14ca2o4action=batchNext 

{HTTP:112, TCP:110, IPv4:1} {{ALL GOOD DATA}}


And the closing bell (the omissions are there because i let the

sniffer app filter by process id - ip-address) :

363 22:31:16 8-2-2011   676.1139552 Unavailable-4920
WindowsNameOfApacheServer   InternetDomainOfApacheServerHTTP
HTTP:Response, HTTP/1.1, Status: Ok, URL:{OMMITTED BECAUSE OF MEMORY
EXHAUSTION-KILL OF SNIFFER APP}{HTTP:31, TCP:30, IPv4:29}
{{CONTAINS THE WANTED DATA}}

367 22:31:19 8-2-2011   679.1089487 Unavailable-4920
WindowsNameOfApacheServer   InternetDomainOfApacheServerTCP 
TCP:[ReTransmit #363]Flags=...AP..., SrcPort=HTTP(80), DstPort=8372,
PayloadLen=614, Seq=3326586000 - 3326586614, Ack=3291710338, Win=260
{TCP:30, IPv4:29}

372 22:31:21 8-2-2011   681.6189851 Unavailable-4920
WindowsNameOfApacheServer   InternetDomainOfApacheServerTCP 
TCP:Flags=...A...F, SrcPort=HTTP(80), DstPort=8372, PayloadLen=0,
Seq=3326586614, Ack=3291710338, Win=260 {TCP:30, IPv4:29}

376 22:31:25 8-2-2011   685.1089219 Unavailable-4920
WindowsNameOfApacheServer   InternetDomainOfApacheServerTCP 
TCP:[ReTransmit #363]Flags=...AP..F, SrcPort=HTTP(80), DstPort=8372,
PayloadLen=614, Seq=3326586000 - 3326586615, Ack=3291710338, Win=260
{TCP:30, IPv4:29}

384 22:31:37 8-2-2011   697.1089168 Unavailable-4920
WindowsNameOfApacheServer   InternetDomainOfApacheServerTCP 
TCP:[ReTransmit #363]Flags=...AP..F, SrcPort=HTTP(80), DstPort=8372,
PayloadLen=614, Seq=3326586000 - 3326586615, Ack=3291710338, Win=260
{TCP:30, IPv4:29}

400 22:32:01 8-2-2011   721.1089938 Unavailable-4920
WindowsNameOfApacheServer   InternetDomainOfApacheServerTCP 
TCP:[ReTransmit #363]Flags=...AP..F, SrcPort=HTTP(80), DstPort=8372,
PayloadLen=614, Seq=3326586000 - 3326586615, Ack=3291710338, Win=260
{TCP:30, IPv4:29}

431 22:32:49 8-2-2011   769.1090750 Unavailable-4920
WindowsNameOfApacheServer   InternetDomainOfApacheServerTCP 
TCP:[ReTransmit #363]Flags=...AP..F, SrcPort=HTTP(80), DstPort=8372,
PayloadLen=614, Seq=3326586000 - 3326586615, Ack=3291710338, Win=260
{TCP:30, IPv4:29}

485 22:33:49 8-2-2011   829.1041446 Unavailable-4920
WindowsNameOfApacheServer   InternetDomainOfApacheServerTCP 
TCP:Flags=...A.R.., SrcPort=HTTP(80), DstPort=8372, PayloadLen=0,
Seq=3326586615, Ack=3291710338, Win=0   {TCP:30, IPv4:29}

550 22:35:38 8-2-2011   938.7487524 Unavailable-676 
WindowsNameOfApacheServer   InternetDomainOfApacheServerTCP 
TCP:Flags=...A.R.., SrcPort=8372, DstPort=HTTP(80), PayloadLen=0,
Seq=3291710338, Ack=3326586000, Win=0   {TCP:59, IPv4:29}

551 22:35:38 8-2-2011   938.7514250 Unavailable-4920
InternetDomainOfApacheServerWindowsNameOfApacheServer   TCP 
TCP:Flags=...A.R.., SrcPort=8372, DstPort=HTTP(80), PayloadLen=0,
Seq=3291710338, Ack=3326586000, Win=0   {TCP:60, IPv4:29}


Please note that packet 550 was apparently from a different cpu
process.

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] curl_exec won't return (any data)

2011-02-08 Thread Tolas Anon
The one thing that strikes me as odd, before i go, is that i saw no
actual HTTP-KEEPALIVE traffic flowing... I might have missed it, but i
don't think so..

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php