Skip to content
This repository has been archived by the owner on Oct 17, 2022. It is now read-only.

Get stuck on 48% #31

Open
Kronos2308 opened this issue Jul 17, 2021 · 27 comments
Open

Get stuck on 48% #31

Kronos2308 opened this issue Jul 17, 2021 · 27 comments

Comments

@Kronos2308
Copy link

  • in the latest version 1.1.3 the download get stuck on 48% for hours and the firmware never get to download
@D3fau4
Copy link
Owner

D3fau4 commented Jul 18, 2021

Mira abriéndolo con nxlink y manda foto del log cuando se quede pillado en ese porcentaje.

@Kronos2308
Copy link
Author

@Kronos2308
Copy link
Author

se me sigue pillandoo a ese porciento y no solo a mi
y otra cosa loca q me paso y es que intente montar un server de actualizacion
usando la herramienta "NightFall Server.exe" Firmware-12.1.0 keys.txt 12.1.0 806355064 update
todo bien descarga hasta ek 100% pero luego que le das a continuar no empieza la actualizacion sinoq vuelve a descargarse el firmware infinitamente, aqui t adjunto el log
logs.txt

@D3fau4
Copy link
Owner

D3fau4 commented Aug 8, 2021

eso está desactualizado la desgracia es que no puedo mirar nada de eso, estoy de vacaciones y el pc mas cercano es un pc con windows 95 por cierto si quieres montar un server ahora te paso por discord mi servidor que uso para nightfall que ese si está actualizado y a lo mejor te interesa.

@Kronos2308
Copy link
Author

vale aunque te comento un poco
hise un fork y loo compile yoo mismo y parece que ahora si descarga de tu server lo raro es que no he echo nada muy grande con el codigo

y va ser que tenias razon con lo de que era el progama
imagen

@D3fau4
Copy link
Owner

D3fau4 commented Aug 8, 2021

Si, acabo de ver los cambios puede que sea un problema de memoria y al guardarlo en memoria ya no peta (?), El nca al que se queda pillado siempre es el nca donde tiene programa flog que es el nca más grande que descarga, lo que pasa es que se queda en bucle descargando, osea descarga, falla, descarga y así todo el rato. No sé si ha habido una actualización reciente de la librería curl, lo mismo cuando lo compile tenía un bug o algo.

@Kronos2308
Copy link
Author

a si
bueno estoy usando un la memoria para guardar la descarga porque es mas rapido
si bien tiene que sacar de la memoria a la sd al terminar es mucho mas rapido que ecribir directamante en la sd
sobre todo con archivos grandes
la unica pega es que en applet mode tienes muy poca memoria disponible
por lo que jay que volcar a la sd cuando llega al tope y vaciar la memoria aun asi es mas rapidopor lo que he probado

@Kronos2308
Copy link
Author

pero no se si eso hace que no falle creoo q no tiene que ver

@Kronos2308
Copy link
Author

Kronos2308 commented Aug 8, 2021

de la forma en qu esta planteaoen al codigo esta bien pero se creara un bucle si alguno de los ficheros falla
deberia checarse si el fichero existe y por la parte de la red se puede usar la memoria para si falla no llege a escribirse un fichero vacio o incompleto o descargarlo a un archivo temporal y renombrarlo
imagen
corrigeme si me equivoco

@D3fau4
Copy link
Owner

D3fau4 commented Sep 10, 2021

NightFall.zip
mira a ver si esta compilación te funciona bien, a mi en mi red local todo perfecto.

@Kronos2308
Copy link
Author

#32 haciendo esto me funciono
voy a probar tu build a ver

@Kronos2308
Copy link
Author

ahora no recuerdo habia algo q previniese q la consola entrara en espera si nightfall estaba descargando?

@Kronos2308
Copy link
Author

Kronos2308 commented Sep 10, 2021

error [0;32m[DEBUG][0m https://updates.not-d3fau4.tk/c/a/1ddada09497ebd46682c794eb8a50ae3
error�[0;32m[DEBUG]�[0m https://updates.not-d3fau4.tk/c/a/1b934dca040d02a6c6706ca919b3106d
error�[0;32m[DEBUG]�[0m https://updates.not-d3fau4.tk/c/a/2e0ec33c7059fea7780badcb852ca90a
error�[0;32m[DEBUG]�[0m https://updates.not-d3fau4.tk/c/a/345eb30c36623de4ab03b2bc4a82811c
error�[0;32m[DEBUG]�[0m https://updates.not-d3fau4.tk/c/a/11ba8c801d85d2fb8f889a8f4d62c1d7
error�[0;32m[DEBUG]�[0m https://updates.not-d3fau4.tk/c/a/7460df03d175c7f33c491ef0e0208b9f
error�[0;32m[DEBUG]�[0m https://updates.not-d3fau4.tk/c/a/c8bf894e7a5835efb8ce3fb5aee4c8dd
90%

@Kronos2308
Copy link
Author

nop

@Kronos2308
Copy link
Author

28minutos tomo y como tuvo errores empezo desde el principio

@Kronos2308
Copy link
Author

pero en serio usar un chunk de memoria reduce el tiempo de media hora a 10m

@D3fau4
Copy link
Owner

D3fau4 commented Sep 11, 2021

procedo a

@Kronos2308
Copy link
Author

para que no falle si el achivo es mas grande de lo que la memoria puede almacenar (Que no lo he visto )
puedes simplemente vaciar el chunk a la sd y seguir y asi descargar el acrivo por trosos

@Kronos2308
Copy link
Author

static size_t write_memory_callback(void *contents, size_t size, size_t nmemb, void *userdata)
{
  size_t realsize = size * nmemb;
  struct MemoryStruct *mem = (struct MemoryStruct *)userdata;

  char *ptr;

  ptr = (char*)realloc(mem->memory, mem->size + realsize + 1);

  if (ptr == NULL)
  {
      printf("Failed to realloc mem\n");
	  printf("Writing... %uMb To file\n",mem->size / 1000000 + 1);
	  fwrite(mem->memory, 1, mem->size, mem->fp);
	  free(mem->memory);
	  mem->memory = (char*)malloc(1);
	  mem->size = 0;
	  ptr = (char*)realloc(mem->memory, mem->size + realsize + 1);
	  if (ptr == NULL) return 0;
  }
 
  mem->memory = ptr;
  memcpy(&(mem->memory[mem->size]), contents, realsize);
  mem->size += realsize;
  mem->memory[mem->size] = 0;

  return realsize;
}```
el fichero debe abrirse como append

@Kronos2308
Copy link
Author

@D3fau4
Copy link
Owner

D3fau4 commented Sep 12, 2021

Pues de momento hice esto: faffc13

@Kronos2308
Copy link
Author

No sé usar la memoria no debería ser una opción
Porque trae más velocidad de descarga sin ningún efecto negativo

@Kronos2308
Copy link
Author

Y ya esto es mi opinión pero la pantalla no debería apagarse durante la descarga
Y tampoco te debería preguntar si quieres actualizar si la descarga termino ya q esperaste hasta hay pa q lo vas a canselar
Así mismo gestionar que puede pasar si un fichero falla intentar descargarlo luego pero solo ese fichero no el firm entero

@Kronos2308
Copy link
Author

En cuanto a al sobrecarga de memoria simplemente lo gestionas desde el write callbak de curl si es q ocurre que no pasa con los ficheros pequeños q usas y si esas en full ram tienes 3gb +/- para desgargar

@Kronos2308
Copy link
Author

Eso sí tienes que agregar un pequeño pedazo de código para gestionar el llenado de mamotia y el vaciado a un archivo en la SD y aunque parezca que alfinal estás escribiendo en la SD ap parecer no es lo mismo escribir 40mb de golpe que byte a byte lo cual es más lento de procesarlo

@D3fau4
Copy link
Owner

D3fau4 commented Sep 12, 2021

En cuanto a al sobrecarga de memoria simplemente lo gestionas desde el write callbak de curl si es q ocurre que no pasa con los ficheros pequeños q usas y si esas en full ram tienes 3gb +/- para desgargar

Supuestamente una aplicación no puede reiniciar la consola y tampoco aplicar actualizaciones, prohibiere el uso del modo aplicación en próximas commits. y no lo voy a poner obligatorio porque no voy a arriesgar a mis usuarios de que reviente la aplicación porque haya sobrecarga de memoria, tu no sabes si el usuario lleva atmosphere limpio o con 18 sysmodules o mierdas que consuma memoria o modifique memoria.

@Kronos2308
Copy link
Author

en ese caso solo gestiona la sobrecarga de memoria y listo
no es tan dificil y el metodo es bbastante hermetico
aqui te lo dejo
StarDustCFW@bdd939d
pero ya eso es cosa tulla.

 //para el modo applet usa 
bool AppletMode=false;
AppletType at = appletGetAppletType();
if (at != AppletType_Application && at != AppletType_SystemApplication) {AppletMode=true;}
//o algo simlar

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants