Bug 5554 - Actualización OJS
Summary: Actualización OJS
Status: RESOLVED FIXED
Alias: None
Product: Reclamos Usuarios
Classification: Unclassified
Component: General (show other bugs)
Version: unspecified
Hardware: Software o Programas Revista - OJS
: Normal normal
Assignee: Guillermo Reisch
URL: http://rue.fenf.edu.uy/index.php/rue
: 6510 6511 (view as bug list)
Depends on:
Blocks:
 
Reported: 2021-03-24 12:48 -03 by Revista Uruguaya de Enfermería
Modified: 2022-06-17 10:42 -03 (History)
3 users (show)

See Also:
Local: Casona Jaime Cibils
Dep/Cat: Revista
Dep/Cat: ---
Dep/Cat: ---


Attachments
OJS tablas faltantes.... (6.36 KB, application/sql)
2022-06-17 10:29 -03, Guillermo Reisch
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Revista Uruguaya de Enfermería 2021-03-24 12:48:46 -03
Estimados,

solicitamos la actualización de la plataforma OJS a su última versión disponible.
Quedamos a su disposición.

Saludos, Equipo Editorial.
Comment 1 Guillermo Reisch 2021-03-27 14:36:44 -03
Se crea una copia de rue.fenf.edu.uy => rue2.fenf.edu.uy
Se trabajara sobre esa copia de forma de no tener baja de servicio!
Cuando esta este terminada se cambiara la copia actualizada por la original.

Copia de archivos
# ssh greisch@websrv2.dmz
# cd /var/www
# mkdir rue2.fenf.edu.uy
# sudo chown greisch:www-data rue2.fenf.edu.uy
# rsync -avzrXx rue.fenf.edu.uy/ rue2.fenf.edu.uy/

Copia de la base de datos
# ssh root@odin.dmz
#### Nota: encuentro un bug en el autofs que monta el NFS del respaldo de las Bases de Datos.
# nano /etc/auto.hades 
--databases   -port=2049,-fstype=nfs4    192.168.100.110:/mnt/hades/databases
++databases   -port=2049,fstype=nfs    192.168.100.110:/mnt/hades/databases
#### Nota: el formato del archivo map (auto.archivo_map) es de la forma "key [-options] location" en este caso las opciones son "port=2049,fstype=nfs" por lo que se ponen un "-" antes de las opciones ; la forma anterior tenia las opciones "port=2049,-fstype=nfs4" y la opción "-fstype" no existe (porque cuando montas algo por ejemplo "mount -o ro,remount /dev/disco1 /mnt/prueba" tiene como opciones "ro,remount" por lo que en el auto.archivo_map seria "prueba  -ro,remount  /dev/disco1" (y no -ro,-remount)
En las versiones viejas de autofs (o creo puede ser en nfs-client) si la opción no existía era ignorada y no daba error, en las versiones nuevas si la opción no existe da error ; osea el -port=2049,-fstype=nfs4 no funciona en autofs nuevos.
Por otro lado se cambia la opción a "nfs" (envés de nfs4) ya que no tenemos implementado kerberos y no anda el nfs4 en las FreeNAS (de momento) ; antes funcionaba con la linea porque estaba mal escrita la opción -fstype=nfs4 (con el - adelante era ignorada, y por lo tanto usaba nfs(3) )

#### Chequeo que todo quede bien
# service autofs stop
# service autofs start
# ls /mnt/hades/databases => Funciona! Veo archivos
# ls -lah /var/backups/mysql
 lrwxrwxrwx 1 root root 26 ago 29  2017 /var/backups/mysql -> /mnt/hades/databases/mysql
# ls -lah /var/backups/mysql/ => Funciona! Veo archivos (y son del backup de hoy a las 01:00 AM)
# ls -lah /var/backups/postgresql
 lrwxrwxrwx 1 root root 31 ago 29  2017 /var/backups/postgresql -> /mnt/hades/databases/postgresql
# ls -lah /var/backups/postgresql/ => Funciona! Veo archivos (y son del backup de hoy a las 01:00 AM)
Me fijo cuando se realizan los respaldo de la bases de datos
#### Crontab -e #######
#Ejecutar respaldo de mySQL a diario a las 01:00 am
00 01 * * * /usr/local/sbin/mysql_backup.sh

#Ejecutar respaldo de Postgres a diario a las 01:00 am
00 01 * * * /usr/local/sbin/postgres_backup.sh

Modifico para que respalde las bases de datos MySQL a las 1:00AM y la  BD de postgres a las 1:30, de esta forma de respaldar primero la MySQL y luego la postgres (y no las 2 al mismo tiempo)

#### Verifico que se estén snapshando los backups! (ya que el NFS esta sobre un ZFS que snapshea (o debería))
# ls /mnt/hades/databases/.zfs/snapshot/
 auto-20200126.2000-3m   auto-20200126.2100-3m   auto-20200126.2200-3m
 auto-20200127.0000-3m   auto-20200127.0100-3m   auto-20200127.0200-3m
 ......
 Por lo que veo esta haciendo snapshots cada 1hs todos los días ; pero la DB se respalda 1 sola vez al día (a la 1:00AM), por lo que tenemos 23 snapshots sin cambios y 1 snapshot con cambios.

Miro en HADES donde se realizan los snapshots ZFS para ver porque esta realizando el snapshots cada 1hs enves de 1 vez al dia a las 2:00AM.
 Encuentro el Problema (bug del FreeNAS), esta definida Hora_Inicio = Hora_final = 2:00 (y este es un bug, si seteas hora de inicio y final igual entonces es como que seteas Inicio=00:00 Final 23:59)
Lo mejor es NO USAR hora_inicio/hora_final, sino dejarlo por defecto 00:00 -> 23:59 (siempre activo) ; y escribir bien el formato del CRON para que se ejecute con el CRON y no cheque la hora.

Respaldos de Base de Datos quedo ASÍ:
 Dataset: hades/databases
 Recursivo: SI
 Snapshot Life: 1 Year
 Naming Schema: auto-%Y%m%d.%H%M-1y
 Cron: 0 2 * * * (antes estaba 0 * * * *, y seteado el BEGIN/END, y por el bug generaba snapshot cada 1 hora)
 Begin: 00:00  (nota, con el Cron no importa este valor!)
 End: 23:59:00 (nota, con el Cron no importa este valor!)
 Allow empty snapshot: SI
 Activado: SI


Borro todas los snapshots de hora diferente de las 2:00AM!
# ssh root@hades.dmz
# cd /mnt/hades/databases/.zfs/snapshot
# echo auto-*.?[0-1,3-9]00-3m | xargs -n1 -Imagic zfs destroy hades/databases@magic
# echo auto-*.[1,2]200-3m | xargs -n1 -Imagic zfs destroy hades/databases@magic

Y renombro las viejas snapshots de las 2:00AM para que duren 1 año
# echo auto-*.0200-3m | sed "s/-3m//g" | xargs -n1 -Imagic zfs rename hades/databases@magic-3m hades/databases@magic-1y

Como paso 1 noche desde que empece el bug, ya veo que dejo de hacer snapshots cada 1 hora y paso a hacer un único snapshot por día a las 2:00AM, por otro lado cheque los backups creados por los scripts y están con fecha de hoy a las 01:00/01:30 como corresponde. Así que se están haciendo snapshots correctamente.
Comment 2 Guillermo Reisch 2021-03-29 19:23:10 -03
Creo la base de datos "rue2" (de forma de no tocar la rue'1)
Y copio el contenido de la base de datos rue"1" a rue2 en el servidor de bases de datos (odin.dmz)

# ssh odin.dmz
# mysql -p  # entro como root
## CREATE DATABASE rue2 ;
## GRANT ALL PRIVILEGES ON rue2.* TO 'rue'@'%';
## quit
# mysql -p -u rue rue2 < /var/backups/mysql/rue.sql 

Ahora configuro el sitio rue2 en el servidor websrv2 de forma de hacerlo independiente de rue'1
# ssh greisch@websrv2.dmz
# cd /var/www/rue2.fenf.edu.uy/ojs
# nano config.inc.php

--base_url = "https://rue.fenf.edu.uy"
++base_url = "https://rue2.fenf.edu.uy"

.....

[database]

driver = mysqli
host = odin.dmz
username = rue
password = [la misma que antes]
--name = rue
++name = rue2

.......

--files_dir = /var/www/rue.fenf.edu.uy/rue-files
++files_dir = /var/www/rue2.fenf.edu.uy/rue-files

### Ahora genero la configuración del sitio
# cd /etc/apache2/sites-available/
# cp rue.fenf.edu.uy.conf rue2.fenf.edu.uy.conf 
# cp rue.fenf.edu.uy-ssl.conf rue2.fenf.edu.uy-ssl.conf 

En los archivos copiados se actualizan las entradas de:
 ServerName => rue2.fenf.edu.uy
 DocumentRoot => /var/www/rue2.fenf.edu.uy/ojs
 <Directory /var/www/rue2.fenf.edu.uy/ojs>

### Activo el sitio web
# a2ensite rue2.fenf.edu.uy
# a2ensite rue2.fenf.edu.uy-ssl
# service apache2 reload

OK! en mi PC pruebo que este funcionando ANTES de empezar a actualizar
# nano /etc/hosts
++# Pagina web rue2 hardcoded!
++192.168.100.36  rue2.fenf.edu.uy

Pruebo en el explorador web la pagina rue2.fenf.edu.uy
FUNCIONA! ok copia lista para trabajar!
Comment 3 Guillermo Reisch 2021-03-29 19:38:00 -03
Primero me fijo en que versión estamos

# cd /var/www/rue2.fenf.edu.uy/ojs
# git status
En la rama stable-3_1_2

##OK! Cambiando de rama stable-3_1_2 a rama stable_3_3_1
# git checkout stable_3_3_1
Acá me dio empila de errores, por modificaciones locales, por lo que 
Busco modificación y las revierto:
 # git checkout -- archivo_modificado
busco archivos que no están en el git (y no ignorados)....
 # rm archivos_que_no_esta_en_el_git
Actualizo submodulos
 # git submodule update --init --recursive
Borro submodulos que ya no existen....
 # rm -rf directorio_de_submodulo

Repito todos los pasos anteriores pero para los submodulos!

# git status
En la rama stable-3_3_1 => LISTO!

Corro la instalación de dependencias.
# composer --working-dir=lib/pkp install
# composer --working-dir=plugins/paymethod/paypal install
# composer --working-dir=plugins/generic/citationStyleLanguage install

LA ULTIMA DA ERROR! TENGO QUE ACTUALIZAR EL SERVIDOR WEB!!!

------------------- Actualización servidor websrv2 ------------

# primero ante todo un snapshot para hacer rollback en el peor de los casos!
sudo lvcreate --snap --name previo_update --size 3G vg/websrv

sudo aptitude:
 => Actualizo a php7.4
 => chequeo estén todos los módulos (requeridos) en php7.4
 => Actualizo a python 3.9
 => Actualizo apache2 a que utilize php7.4
 => Actualizo kernel

Reboot => Pruebo => sigue funcionando RUE'1
 => Así que remuevo los archivos viejos # apt-get clean
 => Remuevo kernels viejos
 => remuevo configuraciones viejas (apt-get purge ..paquete..)

LISTO! Actualizado y "parece" que funciona correctamente.
Vuelo el snapshot de respaldo.
# sudo lvremove vg/previo_update
Do you really want to remove active logical volume vg/previo_update? [y/n]: y
  Logical volume "previo_update" successfully remove

------------------- Fin actualización de websrv2 --------------
Comment 4 Guillermo Reisch 2021-03-30 19:01:33 -03
# composer --working-dir=plugins/generic/citationStyleLanguage install
Da otro error, le falta el php-intl

Instalo php-intl
# sudo apt-get install php-intl

# npm install
# npm run build

Cambio en config.inc.php:
 => installed = Off
Y corro el script de actualización
# php tools/upgrade.php upgrade
....
....
WARNING: The NavigationMenu (ContextId: 1, Title: User Navigation Menu, Area: user) will be skipped because the specified area has already a NavigationMenu attached.
WARNING: The NavigationMenu (ContextId: 1, Title: Primary Navigation Menu, Area: primary) will be skipped because the specified area has already a NavigationMenu attached.
WARNING: The NavigationMenu (ContextId: 0, Title: User Navigation Menu, Area: user) will be skipped because the specified area has already a NavigationMenu attached.
[code: Installer Installer::migrateStaticPagesToNavigationMenuItems]
WARNING: The StaticPage "Recursos de interés" uses a path (Recursos) that conflicts with an existing Custom Navigation Menu Item path. Skipping this StaticPage.
....
....
Successfully upgraded to version 3.3.0.3

Ok, dio esos errores hay que ver PORQUE! igual Actualizo, y se rompe la visual (que tengo que ver si es que no es así en la nueva versión)

Errores que veo:
 * Saco las Navigation Menu
 * Esta pt_BR dos veces....
 * Parece que no anda la estructura de menu...

Tengo que seguir haciendo pruebas!!!!....
Comment 5 Guillermo Reisch 2021-04-03 02:45:16 -03
WARNING: The StaticPage "Recursos de interés" uses a path (Recursos) that conflicts with an existing Custom Navigation Menu Item path. Skipping this StaticPage.

Primer BUG arreglado ; por lo visto HAY 2 PAGINAS CASI IGUALES "Recursos de Interés", una de ellas es STATICA, y la otra no tengo idea de como es PERO esta en el menú de navegación en la parte de "Menú de Navegación => Acerca de => Recursos de Interés". Ambas paginas tenían la misma RUTA (http://rue.fenf.edu.uy/index.php/rue/recursos) por lo que cuando ponías esa ruta se mostraba 1 sola de las 2 y la otra quedaba oculta! Y ahí UNO de los problemas que daba la actualización de la Base de Datos.

Se renombra la ruta de la pagina STATICA de "recursos" a "recursos2". Se pide que miren cual es la pagina que vale y borrar la otra.
http://rue.fenf.edu.uy/index.php/rue/recursos
http://rue.fenf.edu.uy/index.php/rue/recursos2

Editores de la Revista RUE deben mirar cual de las 2 paginas vale y borrar la otra.
Comment 6 Guillermo Reisch 2021-04-03 16:27:16 -03
Otro problema! No puedo ver los PDF en el visor embebido en la pagina web.
Después de 2 horas mirando paginas en una comentaban que funcionaba en algunos exploradores y en otros no.

Por ende verifique en el google-chrome y funcionaba!
Mire la versión de Firefox (tengo la 84)
# sudo apt-get install firefox  ### actualizo.....
# dpkg -l firefox
ii  firefox        87.0+build3-0ubuntu0.20.04.2 amd64 

Pruebo con Firefox 87.0 y ahora funciona!
Por lo que veo la nueva versión de OJS necesita que el explorador este ACTUALIZADO, por lo que si alguien esta mirando la pagina con una versión VIEJA de firefox (o internet explorer 6....) NO VA A VISUALIZAR BIEN LOS PDFs EMBEBIDOS.

Se deja constancia de este descubrimiento!
Comment 7 Rafael Alvarez 2022-03-02 12:30:05 -03
*** Bug 6510 has been marked as a duplicate of this bug. ***
Comment 8 Rafael Alvarez 2022-03-02 12:31:24 -03
*** Bug 6511 has been marked as a duplicate of this bug. ***
Comment 9 Rafael Alvarez 2022-05-27 11:51:38 -03
Entiendo que el OJS está en su última versión.
Comment 10 Guillermo Reisch 2022-06-17 10:27:38 -03
Amplio información para que no quede descolgado el tema.
Se actualizo hace tiempo uno cuantos meses, pero no se cerro en su momento porque la idea era mandar al grupo de OJS los problemas que habíamos tenido al actualizar.
Por otros trabajos no pudimos enviar lo que realizamos al grupo de OJS.

Se actualizo a la versión:
3.3.0.10 	3 	3 	0 	10 	2022-03-21

Para actualizar la misma tuvimos que agregar manualmente TABLAS a la base de datos. Y además ir para adelante y para atrás ya que cuando se corría la actualización de la base de datos esta se corrompía cada vez (por la falta de tablas que el script tomaba como pre-existentes en la BD, cuando en realidad no existían)
Comment 11 Guillermo Reisch 2022-06-17 10:29:03 -03
Created attachment 132 [details]
OJS tablas faltantes....

Tablas que tuvimos que agregar a manopla para que actualizara el script sin colgarse.
Comment 12 Guillermo Reisch 2022-06-17 10:42:19 -03
Actualice de vuelta... estamos en la 3.3.0-11

root@websrv2:/var/www/rue.fenf.edu.uy/ojs-git/tools# php upgrade.php upgrade
 
2022-06-17 10:39:27 [pre-install]
2022-06-17 10:39:27 [load: upgrade.xml]
2022-06-17 10:39:27 [version: 3.3.0.11]
2022-06-17 10:39:27 [code: Installer Installer::checkPhpVersion]
2022-06-17 10:39:27 [code: Installer Installer::installDefaultNavigationMenus]
WARNING: The NavigationMenu (ContextId: 1, Title: User Navigation Menu, Area: user) will be skipped because the specified area has already a NavigationMenu attached.
WARNING: The NavigationMenu (ContextId: 1, Title: Primary Navigation Menu, Area: primary) will be skipped because the specified area has already a NavigationMenu attached.
WARNING: The NavigationMenu (ContextId: 0, Title: User Navigation Menu, Area: user) will be skipped because the specified area has already a NavigationMenu attached.
2022-06-17 10:39:27 [code: Installer Installer::migrateStaticPagesToNavigationMenuItems]
2022-06-17 10:39:28 [code: Installer Installer::addPluginVersions]
2022-06-17 10:39:31 [post-install]
Successfully upgraded to version 3.3.0.11