[CERRAR HILO] ([INVESTIGACIÓN] Cuelgues PS3 FTP Server)

Actualización 2: Los problemas con el servidor FTP detectados en este hilo se solucionan si se sustituye el servidor FTP de la PS3 por este otro:
hilo_blackb0x-v1-1-of-ftp-server_1492853


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

Hilo original:

El PS3 FTP Server falla mas que una escopeta de feria, eso es un hecho.

Actualización: Viendo los comentarios si usas Windows probablemente no te interese este hilo ya que en ese sistema operativo el problema ya ha sido superado mediante los tutoriales existentes.

Algunos han encontrado soluciones que les van mas o menos bien, otros afirman haber conseguido la perfección. Este hilo es para profundizar un poco mas en el tema y evitar las, poco científicas, experiencias personales.

El objetivo es encontrar, si es posible, el causante de los cuelgues para poder subsanarlo o bien minimizar el problema.

Antes que nada lo mas importante es poderlo reproducir de forma sistemática tantas veces como queramos, para ello he creado un pequeño script en Python que nos puede ayudar.

Estas son las características del script:
- Está programado en python, un lenguaje multiplataforma que nos permitirá obtener información de múltiples sistemas operativos y configuraciones.
- Se conecta por FTP a la consola y ejecuta un LIST (ls o dir) del disco duro interno de la PS3.
- Repite el LIST mil veces en cada ejecución mostrándonos el progreso. La prueba se considera superada cuando llega al 100%. Si se detiene en un porcentaje intermedio durante más de 10 segundos consideramos el test como "no superado".
- El tiempo de ejecución de un test es de entre 2 y 4 min.

Código fuente:
ip="192.168.35.40"

import sys, os, time
so = os.name
if so == "posix":
   borrarPantalla = "clear"
elif so == "nt":
   borrarPantalla = "cls"

from ftplib import FTP
ftp = FTP(ip);
ftp.login('FTPD12345')
ftp.set_pasv(0)
directory = '/dev_hdd0'
ftp.cwd(directory)
contador=0
inicio = time.time()
while contador < 1000:
  resultado = []
  ftp.retrlines('LIST', resultado.append)
  contador=contador+1
  os.system(borrarPantalla)
  sys.stdout.write("Progreso: "+str(float(contador)/10.0)+"% Tiempo: "+str(round(time.time()-inicio))+"s\n")

ftp.quit()
sys.stdout.write("\n\nProceso finalizado correctamente.\n")
sys.stdin.read(1)


Para obtener datos estadísticamente relevantes es recomendable ejecutar el script un mínimo de 5 veces, reiniciando la consola antes de cada prueba (el PC no hace falta reiniciarlo, a menos que alguien aporte motivos por los que sería relevante).

¿No existen ya soluciones?

Las soluciones de los tutoriales existentes se basan en configurar el cliente FTP en modo Pasivo y limitarlo a una única conexión. Esta solución parece que es válida en algunos casos pero no siempre es así. El script de pruebas que he creado trabaja en modo Pasivo y con una única conexión y a pesar de ello se siguen produciendo fallos de conexión. Este hilo tiene como objetivo identificar el origen de estos fallos para intentar solucionarlos.

¿Quién debe participar?

- Por un lado aquellas personas que quieran trabajar activamente en el problema, probando soluciones, modificaciones en la red, etc. El script nos dará un banco de pruebas estable y homogéneo para poder trabajar en equipo.

- Por otro lado aquellas personas que puedan aportar información nueva. Por ejemplo ejecutándolo en sistemas que no hayan sido probados aún o bien si consideran que sus resultados serán sustancialmente distintos a los que aparecen en el hilo. Si por ejemplo en un Linux las pruebas actuales muestran un fallo de +75% y tú usando Linux no tienes problemas, por favor ejecuta el script y postea tus resultados.

¿Cómo ejecuto el script?

Primero necesitamos tener instalado el intérprete de python. Windows por defecto no lo lleva instalado, lo podemos descargar desde este enlace: http://www.python.org/ftp/python/3.1.2/python-3.1.2.msi

Otros sistemas (Linux, FreeBSD, etc.) normalmente sí lo llevan instalado de serie, podemos confirmarlo ejecutando python -V o python --version.

El segundo paso es descargar el script adjunto a este mensaje y guardarlo en el disco duro. (test-ftp.py)

Una vez descargado debemos editar el archivo con un editor de texto (el Blocde notas mismo) y modificar la línea siguiente:
ip="192.168.35.40"
Modificando la IP por la de nuestra PS3, la que aparece cuando iniciamos el PS3 FTP Server.

Acto seguido encendemos la PS3 con el PSJailbreak / PSGroove y ejecutamos el PS3 FTP Server, pulsamos en Start FTP Server.

Finalmente ejecutamos el script haciendo doble click en Windows y mediante comando de consola en el resto de sistemas (python test-ftp.py)

La ventana nos mostrará el porcentaje del test completado y el tiempo que lleva ejecutándose. Si se encalla mas de 10 segundos podemos dar por finalizado el test, guardando el porcentaje hasta el que ha llegado. Si finaliza con el 100% nos indicará que el proceso ha finalizado correctamente.

Debemos repetir el test un mínimo de 5 veces, reiniciando en cada caso la consola, para obtener datos que sean estadísticamente relevantes.

¿Cómo posteo los resultados?

La información mínima que debes aportar es:
- Sistema operativo (Windows XP, Windows Vista, Debian Linux, Ubuntu 10, etc.)
- Versión del kernel (excepto en windows). Podemos obtenerla mediante el
comando "uname -a".
- Versión de Python. El comando python -V o python --version debería indicarnos la versión. (el enlace que he puesto anteriormente era de la versión 3.12)
- Tipo de conexión: Cable cruzado, Wireless, Red domestica
- Resultados de los tests en el formato C/T (C=correctos, T=Totales). Ej: 4/5
- Porcentaje medio completado: Suma todos los porcentajes y divídelos entre el número de tests. (ej: 100%, 100%, 100%, 43%, 100% = 443/5 = 89%)

Cualquier otro dato que consideres relevante.

¿Puedo estropear la consola?

Para nada.

El script hace exactamente lo mismo que cualquier cliente FTP (FlashFTP, CuteFTP, etc.). De hecho hace mucho menos, únicamente lista el directorio del disco duro. Lo hace muchas veces pero eso no es nada comparado con, por ejemplo, transferir un archivo de varios GB que es para lo que usamos el PS3 FTP Server.

A continuación os pongo la lista de resultados que he podido obtener de las pruebas en distintos sistemas operativos:

Resultados obtenidos hasta el momento

S.O.: Windows XP SP3
Tipo conexión: Red doméstica
Python: 3.1
Resultado test: 5/5 Actualizado: Corregido a 5/5. Ha superado 44 tests seguidos fallando en el 45.
Promedio completado: 100%

S.O.: Windows 7
Tipo conexión: Red doméstica
Python: 2.7
Resultado test: 5/5 (Perfecto!)
Promedio completado: 100%

S.O.: Sun Solaris (Maquina Virtual)
Tipo conexión: Red doméstica
Python: 2.4.4
Resultado test: 1/5 (únicamente uno ha acabado bien)
Promedio completado: 48%

S.O.: Debian Linux
Tipo conexión: Red doméstica
Python: 2.5.2
Resultado test: 0/5 (Todos los tests fallidos)
Promedio completado: 25%

S.O.: Ubuntu 10 LiveCD (Maquina Virtual)
Tipo conexión: Red doméstica
Python: 2.6.5
Resultado test: 0/5
Promedio completado: 17%

S.O.: FreeSBIE (FreeBSD) (Maquina Virtual)
Tipo conexión: Red doméstica
Python: 2.4.3
Resultado test: 0/5
Promedio completado: 13%

Conclusiones: (iré actualizando con las correcciones que aportéis)
En Windows la estabilidad es muy buena, aunque de vez en cuando también sufre algún cuelgue. La muestra es pequeña por lo que no podemos descartar que con Windows 7 también falle de vez en cuando.

En cuanto al resto de sistemas (Linux, FreeBSD, Open Solaris) falla en la gran mayoría de las ocasiones, rara es la vez que se completa la prueba sin errores.

El test del script es muy simple, únicamente pide el listado de ficheros del disco duro una y otra vez, es una tarea completamente repetitiva. Un test así no debería fallar nunca, no estamos hablando de transferir archivos de +4GB sino de un simple "dir". Teniendo en cuenta la gran diferencia de estabilidad entre Windows y los otros sistemas parece que tiene que ver con la implementación de red de los sistemas operativos.

He hecho capturas de red de casos que finalizan correctamente y casos que fallan y a nivel TCP y de contenido del paquete (comandos FTP) no he sabido ver ninguna diferencia destacable.

Puede ser un paquete malformado que algunos S.O. descartan y otros corrigen ? o quizá tiene que ver con el tamaño de la ventana ? con la secuencia de puertos asignados en las conexiones ?

El interprete de python de los Windows probados tiene una versión superior al resto de sistemas, no he encontrado instaladores de Windows de versiones anteriores. No parece que sea problema de implementación de python pero si alguien puede probar versiones anteriores en Windows o posteriores en otros sistemas podriamos descartarlo definitivamente.

Durante las pruebas también he intentado añadir retardos de tiempo en el script (sleeps de unos cuantos milisegundos) pero el ratio de fallo no ha cambiado significativamente.

En temas de programación estoy muy pez y ni de lejos me siento capaz de debugar en la PS3, si alguien está por la labor y lo ve viable podría degubar el PS3 FTP Server forzando los errores (son miles de iteraciones pero unos pocos segundos de ejecución).

Yo por mi parte me he quedado sin ideas :-), espero que alguno de vosotros sea capaz de aportar nuevas líneas de investigación.

Muchas gracias a todos, tanto a los que podáis colaborar como a los que habéis hecho el esfuerzo de leer hasta aquí.

Adjuntos

test-ftp.zip (599 Bytes)

Script de Python para comprobar si falla el FTP
Este tema me interesa. A mi el ftp me falla cada 500 archivos mas o menos. Pase el otro dia un juego de 12 gigas que eran un total de 63 archivos y fue como la seda. Pero pase despues otro de 6GB que contenia unos 7000 archivo y cada 500 archivos se cortaba la conexion y habia que reiniciar la consola, volver a iniciar el ftp y poner las transferencias erroneas en cola otra vez.
Edito: todo esto usando windows 7
Ya decia yo que era raro que me pasase a mi solo, pero vamos a mi se me ha colgado dos veces y sin empezar ninguna transferencia.
A mí sólo se me cuelga a veces al detener el servidor FTP. Mientras copio archivos nunca. Ahora mismo estoy pasando 78Gb, le faltan 40 y sin fallos.

Saludos!
Yo uso windows vista en mi laptop y con el total commander he tenido 0 problemas para copiar y pasar archivos. :)
emulation escribió:Yo uso windows vista en mi laptop y con el total commander he tenido 0 problemas para copiar y pasar archivos. :)


Sí, efectivamente en Windows funciona muy bien. En mis pruebas fallaba de vez en cuando aunque quizá sea por otros motivos no achacables al servidor FTP. Intentaré hacer una prueba mas extensiva a ver si consigo reproducir el problema en Windows de forma reiterada.

Si alguien se aburre podría intentar ejecutar el script en su Windows unas 10 veces, si no falla ninguna de las diez veces corregiré el post inicial para añadir ese resultado. Si os animáis también podéis editar el código modificando el 1000 por un 1000000 (aparece 2 veces) y dejarlo toda la noche.

En cualquier caso lo mas extraño y sorprendente es que en el resto de sistemas que he probado (Solaris, Linux, FreeBSD) el ratio de fallos es muy elevado. Rara es la vez que superan el test de mil LISTs (parece mucho pero si lo fuerzas ocurre en menos de 5 min.)
Yo lo he realizado con el Total Comander y 100 sin fallas, en windows 7
con xp sp3 ue, y el total commander ni un cuelgue ni un fallo, red domestica por el router y dmz a la ps3....
y llevo 10 juegos pasados por ftp incluidos gow3 que tendria tiempo de colgarse.... eso si, es bastante lento...
Uso LAN 100 Mbps. Filezilla y W7 x64.
0 cuelges, y 0 errores. Y eso que he copiado archivos de muuuuuchos gigas.

Eso sí, bien configurado.

Saludos!
oscar0012 escribió:Yo lo he realizado con el Total Comander y 100 sin fallas, en windows 7

A mi me pasa igual que al amigo oscar0012,,,,, totalcomannder y windows7 ,,,todo de lujo rapido y sin fallos por el momento,,,
DZeros escribió:Uso LAN 100 Mbps. Filezilla y W7 x64.
0 cuelges, y 0 errores. Y eso que he copiado archivos de muuuuuchos gigas.

Eso sí, bien configurado.

Saludos!


Cuando dices "bien configurado"... ¿hay "algo" fuera de lo normal que haya que hacer?
DZeros escribió:Uso LAN 100 Mbps. Filezilla y W7 x64.
0 cuelges, y 0 errores. Y eso que he copiado archivos de muuuuuchos gigas.

Eso sí, bien configurado.

Saludos!


En realidad los gigas no parecen relevantes, al menos en el banco de pruebas que he montado y donde he podido reproducirlos de forma sistemática. Los cuelgues son aleatorios en entornos no-Windows y se producen por algo tan sencillo como listar un directorio de 6 u 8 carpetas.

Por lo tanto serían mas interesantes juegos con muchos archivos que juegos con muchos gigas.
Talfi escribió:
DZeros escribió:Uso LAN 100 Mbps. Filezilla y W7 x64.
0 cuelges, y 0 errores. Y eso que he copiado archivos de muuuuuchos gigas.

Eso sí, bien configurado.

Saludos!


Cuando dices "bien configurado"... ¿hay "algo" fuera de lo normal que haya que hacer?

Nada, aparte de lo de limitar conexiones y forzar la transferencia activa.

Saludos!

PD: En total habré copiado 3000 archivos, sin problemas. Así que por número de ficheros tp creo que sea.
DZeros escribió:
Talfi escribió:
DZeros escribió:Uso LAN 100 Mbps. Filezilla y W7 x64.
0 cuelges, y 0 errores. Y eso que he copiado archivos de muuuuuchos gigas.

Eso sí, bien configurado.

Saludos!


Cuando dices "bien configurado"... ¿hay "algo" fuera de lo normal que haya que hacer?

Nada, aparte de lo de limitar conexiones y forzar la transferencia activa.

Saludos!

PD: En total habré copiado 3000 archivos, sin problemas. Así que por número de ficheros tp creo que sea.


En mis pruebas el Windos XP fallaba superadas las 4500 iteraciones. He dejado el resultado tal cual ya que en mis pruebas, en mi sistema operativo, ha fallado en varias ocasiones antes de hacer la muestra final de 5 intentos.

De ahí que pida que las pruebas sean sistemáticas y se use un único método de prueba, para evitar anécdotas personales de las que son difíciles sacar conclusiones. De todas formas cuando tenga un rato haré mas pruebas con Windows en una muestra mas amplia para verificar si los errores que han aparecido inicialmente se reproducen de nuevo.

Lo que está claro viendo los comentarios es que en entornos Windows el funcionamiento del PS3 FTP Server es satisfactorio.
DZeros escribió:
Talfi escribió:Cuando dices "bien configurado"... ¿hay "algo" fuera de lo normal que haya que hacer?

Nada, aparte de lo de limitar conexiones y forzar la transferencia activa.

Saludos!

PD: En total habré copiado 3000 archivos, sin problemas. Así que por número de ficheros tp creo que sea.


Pues así lo tengo yo. 1 única conexión y modo activo... pero al tratar de copiar carpetas de la PS3 al PC se queda colgado cuando le dá la gana.

Probaré con el Total Commander por si acaso.

Gracias por la respuesta.
Buenas, aqui mis resultados, en windows falla muy poco, en mi caso, nunca hasta el momento:

S.O.: Windows XP SP3
Tipo conexión: Red doméstica
Python: 3.12
Resultado test: 5/5
Promedio completado: 100%

Estan hechos sin reiniciar la consola ni el FTP server, que ha estado toda la tarde encendida y el servidor FTP tambien, y cada rato iba haciendo uno.. :D
La red local que tengo montada es a 100, con cable categoria 6 .

No se que es lo que puede afectar al servidor FTP para fallar como os pasa a muchos, pero parece evidente que el sistema operativo influye mucho.
Yo si os sirve para algo, si quereis mañana monto un vmware con linux y pruebo desde el a ver si obtengo los mismos resultados en los test..

Saludos.
Myckie escribió:Yo si os sirve para algo, si quereis mañana monto un vmware con linux y pruebo desde el a ver si obtengo los mismos resultados en los test..

Saludos.


Yo sí te lo agradecería [360º] , si resulta que soy el bicho raro borro el hilo y me busco un psiquiatra.
Pues yo no tengo problemas. Hoy he pasado casi 80gb del tirón y 0 cero errores.
Da igual que lo pase por el router de 100 por cable, que por otro router con red gigabyte de 1000, cero errores en ambos casos.

Saludos!
mandros escribió:
Myckie escribió:Yo si os sirve para algo, si quereis mañana monto un vmware con linux y pruebo desde el a ver si obtengo los mismos resultados en los test..

Saludos.


Yo sí te lo agradecería [360º] , si resulta que soy el bicho raro borro el hilo y me busco un psiquiatra.


Buenas,
He hecho varias pruebas desde linux, y me petardea continuamente...
Oscilaban entre el 30 y el 50% !! Un desastre vamos..
Las pruebas han sido desde Ubuntu , con python 3.1.2 .

Saludos.
Hola que tal, pues yo tengo una maquina con ubuntu 10.04 en todo el disco, sin particiones. Con la configuracion del ps3 y el port de filezilla para linux (configurado para transferencia activa y un solo archivo a la vez) me va perfecto, me he pasado los juegos de fifa world cup, gta4, killzone 2, metal gear solid 4 y todos sin ningun problema. Tengo una ps3 de 80 gb, de las primeras.
Es cierto que el ftp del ps3 falla, pero saliendome de el programa cada vez que me paso algun juego y volviendo a ingresar para pasarme otro me va perfecto.
Salu2!
DZeros escribió:Nada, aparte de lo de limitar conexiones y forzar la transferencia activa.

Saludos!

PD: En total habré copiado 3000 archivos, sin problemas. Así que por número de ficheros tp creo que sea.


Tal como te comentaba antes he repetido el test durante varias horas para confirmar si efectivamente no se colgaba nunca o bien lo hacía en raras ocasiones. Lo he dejado haciendo toda la noche y ha acabado fallando en el "4408%", es decir, el equivalente a hacer 45 tests seguidos. Ha tardado 2 horas y media en fallar. Evidentemente comparado con los tests de otros Sistemas Operativos donde falla a los pocos segundos es toda una proeza, pero sigue siendo teóricamente inestable.

Montaré un servidor FTP en una máquina virtual y le pasaré el test a ésta para confirmar que un FTP normal es mas estable que el de la PS3. No sea que los cuelgues después de +44000 "dirs" sean normales [ginyo]

ApeironArcana escribió:Hola que tal, pues yo tengo una maquina con ubuntu 10.04 en todo el disco, sin particiones. Con la configuracion del ps3 y el port de filezilla para linux (configurado para transferencia activa y un solo archivo a la vez) me va perfecto, me he pasado los juegos de fifa world cup, gta4, killzone 2, metal gear solid 4 y todos sin ningun problema. Tengo una ps3 de 80 gb, de las primeras.
Es cierto que el ftp del ps3 falla, pero saliendome de el programa cada vez que me paso algun juego y volviendo a ingresar para pasarme otro me va perfecto.
Salu2!


Interesante. No tienes que reiniciar la PS3 entre juego y juego ?

Podrías pasar el test del primer hilo a ver si también se te cuelga entre el 30% y el 50% ?

Muchas gracias.
Bueno, ya que veo el hilo aprovecho para dos cosillas...

1. Mac OS X Snow Leopard 10.6.4, usando Cyberduck, perfecto

2. Me conecto usando un cable Cat 5E NO CRUZADO, FTP (FTP significa que el cable es apantallado, para evitar interferencias y tal), con conectores apantallados, un cable de 50 centimetros y usando la Ethernet Gigabit tanto en MacBook como en PlayStation 3... Pero la velocidad de transferencia rara vez pasa de 20 MB por segundo... ¿Alguna idea de porque?
Con FILEZILLA se cuelga continuamente, y con FlashfXP nunca, por lo menos a mi
En Ubuntu 10.04 lo he solucionado cambiando a transferencia ACTIVA.

La cosa es que aún no he conseguido configurarlo por cable de red y tengo que conformarme por Wifi. Va a 1mb/s mas o menos.

Si alguien sabe configurarlo, por favor, que lo postee.
Jesusinacka escribió:En Ubuntu 10.04 lo he solucionado cambiando a transferencia ACTIVA.

La cosa es que aún no he conseguido configurarlo por cable de red y tengo que conformarme por Wifi. Va a 1mb/s mas o menos.

Si alguien sabe configurarlo, por favor, que lo postee.


Una vez instalado este nuevo servidor ftp yo ya no he tenido ningún problema en linux:
hilo_blackb0x-v1-1-of-ftp-server_1492853

Saludos.
mandros escribió:
Jesusinacka escribió:En Ubuntu 10.04 lo he solucionado cambiando a transferencia ACTIVA.

La cosa es que aún no he conseguido configurarlo por cable de red y tengo que conformarme por Wifi. Va a 1mb/s mas o menos.

Si alguien sabe configurarlo, por favor, que lo postee.


Una vez instalado este nuevo servidor ftp yo ya no he tenido ningún problema en linux:
hilo_blackb0x-v1-1-of-ftp-server_1492853

Saludos.


Pero te va por cable de red? A mi me da error siempre habiendo configurado las ip bien.

Edito: Con la nueva versión 1.1b Blackb0x ftp ya funciona!
Muy buenas, el otro día instale el Ubuntu 10.10 pero soy incapaz de pasar nada por FTP a la PS3 con el FileZilla o con el gFTP. Ninguno de los dos envía nada. Tengo la PS3 conectada por cable al router y tanto el FileZilla como el gFTP me conectan bien con la PS3, pero nada... Con el OpenManager 2.1-H al desconectarme me bloquea la PS3 y con el FTPBox 1.2 no envian nada.

La verdad es que estoy desesperado ya, no entiendo que puede ser, si a todo el mundo le va correctamente...
Kumulu escribió:Muy buenas, el otro día instale el Ubuntu 10.10 pero soy incapaz de pasar nada por FTP a la PS3 con el FileZilla o con el gFTP. Ninguno de los dos envía nada. Tengo la PS3 conectada por cable al router y tanto el FileZilla como el gFTP me conectan bien con la PS3, pero nada... Con el OpenManager 2.1-H al desconectarme me bloquea la PS3 y con el FTPBox 1.2 no envian nada.

La verdad es que estoy desesperado ya, no entiendo que puede ser, si a todo el mundo le va correctamente...



ami se me colgaba bastante y pase a win7 y perfecto
27 respuestas