uqbar-project / wollok

Wollok Programming Language
GNU General Public License v3.0
61 stars 16 forks source link

Problemas de asignacion de memoria RAM #1918

Open lspigariol opened 4 years ago

lspigariol commented 4 years ago

Algunos estudiantes reportan problemas al iniciar wollok 2.0

un caso:

Todavia no pude solucionar lo de la Ram asignada, pq se ve que no es la cantidad asignada a Wollok, sino a la consola de Java image

otro caso, que parece ser el mismo problema

Buenas, estaba trabajando con Wollok y ahora cuando lo inicio me tira el error que comentó un compañero en la clase de hoy de falta de memoria. siempre es el error de java heap image image Lo raro es que utilice hasta 248M cuando en el archivo de configuración de Wollok aparece como mínimo 512M

MakelMagus commented 4 years ago

Hola! Yo soy uno de los estudiantes que también esta comenzando a trabajar con esta herramienta. El motivo que yo puedo observar (a simple vista) del porqué sucede esto es que Wollok tiene una especie de límite de memoria. Cuando se inicia el programa y realiza toda una serie larga de cargados o queseyo, esta memoria no parece eliminarse y realiza un "overflow" (por ponerle un nombre) de datos. Presiento que este error sucede debido a que el manejo de memoria esta basado en Linux, que posee todo un espacio, una segregación de disco (swap) asignado a asistir el RAM, y este límite de memoria podría estar relacionado a ello: el sistema detecta mal la cantidad de memoria y utiliza una cantidad menor que la mitad de lo debido. Como referencia, yo estoy utilizando la netbook Conectar Igualdad con la última versión hasta la fecha de windows 10, y descargué la versión de 64 bits para windows, junto al VM predeterminado. Espero que alguno de los contribuidores o desarrolladores que saben como opera el programa solucionen pronto este problema, porque a mi me tarda fácilmente 5 la etapa de preparación inicial, y esto me desalienta muchísimo a utilizar esta herramienta que de no ser por esto, parece muy buena.

fdodino commented 4 years ago

hola @MakelMagus @lspigariol , no estoy 100% seguro, pero apostaría a que el problema tiene que ver porque nosotros configuramos un espacio de memoria por defecto a más de 1GB. Esto tiene algunas ventajas, pero en máquinas con poca RAM puede estar causando que no tengas memoria suficiente y se rompa.

https://crunchify.com/increase-eclipse-memory-size-to-avoid-oom-on-startup/

Lo que te pido es que entres al directorio donde instalaste Wollok, y edites el archivo wollok.ini, que debería tener algo como:

-startup
plugins/org.eclipse.equinox.launcher_1.5.600.v20191014-2022.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.1100.v20190907-0426
-vmargs
-XX:PermSize=512M
-XX:MaxPermSize=768M

modificando la memoria inicial y máxima:

-startup
plugins/org.eclipse.equinox.launcher_1.5.600.v20191014-2022.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.1100.v20190907-0426
-vmargs
-XX:PermSize=256M
-XX:MaxPermSize=512M
-Xms256m
-Xmx512m

no estoy seguro si las últimas dos líneas las va a tomar (JDK 1.8 cambió la forma de trabajar la memoria), pero al menos podemos intentarlo.

Si no funciona, una cosa que nos serviría es que busques el archivo de log que está en el directorio .metadata de tu espacio de trabajo (donde decidas poner tus proyectos de Wollok). Y de paso estaría bueno también sacar una captura de pantalla del Administrador de Tareas, para ver cuánta memoria estás tratando de alocar en tu máquina. Bueno, si todo esto se rompe, lo que podemos hacer es coordinar con Lucas y vos para hacer una call, nos interesa especialmente entender cómo están armadas estas máquinas.

lotuuu commented 4 years ago

Buenas, estoy teniendo el mismo problema incluso después de modificar wollok.ini, cuando abro wollok me dura unos 10 segundos y luego aparece el error. Mi PC corre Windows 10 y tiene 8GB de RAM. Adjunto captura del administrador de tareas y el log.

Captura

copy.log

fdodino commented 4 years ago

ok @lotuuu , con 8GB no deberías tener problema para pedir más memoria, pero configurá por favor los últimos 4 valores (no cambiaste los valores mínimos y máximos):

-vmargs
-XX:PermSize=512M
-XX:MaxPermSize=1024M
-Xms512m
-Xmx1024m

si con 1024 no te funciona, probaría con 1768 (ambos valores).

PalumboN commented 4 years ago

Buenas! Yo tuve un estudiante con el mismo problema y lo solucionó agregando esas últimas líneas al .ini:

-Xms512m
-Xmx1024m

Así que en al menos un caso eso lo arregla :P Porfa confirmen el resto si se pudo solucionar o no.

@fdodino qué onda con esto? Agregamos esas 2 líneas al próximo release o lo subimos a Troubleshootings??

fdodino commented 4 years ago

@PalumboN estaba pensando en lo mismo. Ahora creo un PR, así evitamos dolores de cabeza a les estudiantes 👍

lotuuu commented 4 years ago

Si, mi problema fue que no vi esas últimas 2 líneas la primera vez que traté de corregirlo, al añadirlas anduvo perfecto

MakelMagus commented 3 years ago

Hola, estoy trabajando nuevamente con este programa, esta vez en una computadora de escritorio, y por algún motivo me topé con este error, o al menos una variable del mismo, en otro dispositivo:

Sin importar cuales sean los valores que coloco en wollok.ini, siempre tengo 248 de espacio en la ram (tengo 8GB en la PC).

Ejemplo con 128 - 256 image Ejemplo con 1024 - 2048 image

Especificación de procesador y RAM: image

Sinceramente me da la sensación de que es un problema completamente diferente, pero para arrancar me pareció correcto colocarlo aquí.

MakelMagus commented 3 years ago

Acabo de confirmar que en mi otro dispositivo este problema también ocurre: En la netbook que presentaba el primer problema (solucionado sin inconvenientes), cuando la actualicé a la última versión, su memoria fue modificada de 488 MB a 108 MB.

MakelMagus commented 3 years ago

Estoy notando un problema aún mas grave con respecto a este error: Con una RAM interna de 256, el programa no puede realizar su build inicial, lo cual desemboca en que todos los proyectos tengan errores similares a este: Description Resource Path Location Type IllegalStateException: Entry.next=null, data[removeIndex]=null previous=null key=platform:/resource/creador_de_evaluaciones/src/example.wlk value=org.uqbar.project.wollok.scoping.cache.MapBasedCacheContent@114b9a20 size=20 maxSize=20 Please check that your keys are immutable, and that you have used synchronization properly. If so, then please report this to commons-dev@jakarta.apache.org as a bug. (see logs for details) example.wlk /creador_de_evaluaciones/src line: 1 /creador_de_evaluaciones/src/example.wlk Wollok Problem `

PalumboN commented 3 years ago

Reabro esto para ver el problema de @MakelMagus