Dear Maxim, It seems the cause of the backup export issue lies in the difference in workflow of:
(1) Web UI Admin Backup and (2) CLI backup export. Files affecting the workflow: ~openmeetings/application/branches/3.2.x/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupExport.java ~openmeetings/application/branches/3.2.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java ~openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java Thank you. Sincerely, Hemant K. Sabat Coscend Communications Solutions www.Coscend.com ------------------------------------------------------------------ Real-time, Interactive Video Collaboration, Tele-healthcare, Tele-education, Telepresence Services, on the fly… ------------------------------------------------------------------ CONFIDENTIALITY NOTICE: See 'Confidentiality Notice Regarding E-mail Messages from Coscend Communications Solutions' posted at: http://www.Coscend.com/Terms_and_Conditions.html -----Original Message----- From: Coscend@OM [mailto:om.insig...@coscend.com] Sent: Saturday, July 15, 2017 1:14 PM To: dev@openmeetings.apache.org Subject: RE: OpenMeetings 3.3.0: Backup Issue Dear Maxim, Two more findings to help resolve this issue: (1) Web UI -> Administration -> System backup: This works fine. (2) Could this be the cause of the backup export issue in 3.3.0? It was working fine in 3.2.1. https://issues.apache.org/jira/browse/OPENMEETINGS-1617 The only customization we have done is changed $OM_CONTEXT from ‘openmeetings’ to a ‘different name’. System backup log --------------- DEBUG 07-15 13:10:10.843 LdapConfigDao.java 224911 87 org.apache.openmeetings.db.dao.server.LdapConfigDao [Openmeetings - backup_2017_07_15_13_10_10] - getActiveLdapConfigs DEBUG 07-15 13:10:10.857 FileExplorerItemDao.java 224925 195 org.apache.openmeetings.db.dao.file.FileExplorerItemDao [Openmeetings - backup_2017_07_15_13_10_10] - get started DEBUG 07-15 13:10:10.881 BackupExport.java 224949 401 org.apache.openmeetings.backup.BackupExport [Openmeetings - backup_2017_07_15_13_10_10] - ### profiles DEBUG 07-15 13:10:10.881 BackupExport.java 224949 466 org.apache.openmeetings.backup.BackupExport [Openmeetings - backup_2017_07_15_13_10_10] - Writing 'roomFiles/profiles/profile_1/dashboard.xml' to zip file DEBUG 07-15 13:10:10.882 BackupExport.java 224950 401 org.apache.openmeetings.backup.BackupExport [Openmeetings - backup_2017_07_15_13_10_10] - ### grouplogo DEBUG 07-15 13:10:10.882 BackupExport.java 224950 466 org.apache.openmeetings.backup.BackupExport [Openmeetings - backup_2017_07_15_13_10_10] - Writing 'recordingFiles/one_second.wav' to zip file DEBUG 07-15 13:10:10.883 BackupExport.java 224951 466 org.apache.openmeetings.backup.BackupExport [Openmeetings - backup_2017_07_15_13_10_10] - Writing 'recordingFiles/default_interview_image.png' to zip file DEBUG 07-15 13:10:10.884 BackupExport.java 224952 466 org.apache.openmeetings.backup.BackupExport [Openmeetings - backup_2017_07_15_13_10_10] - Writing 'recordingFiles/default_interview_image.fla' to zip file DEBUG 07-15 13:10:10.885 BackupExport.java 224953 466 org.apache.openmeetings.backup.BackupExport [Openmeetings - backup_2017_07_15_13_10_10] - Writing 'recordingFiles/default_interview_image.jpg' to zip file DEBUG 07-15 13:10:10.887 BackupExport.java 224955 414 org.apache.openmeetings.backup.BackupExport [Openmeetings - backup_2017_07_15_13_10_10] - ---Done Thank you. Sincerely, Hemant K. Sabat Coscend Communications Solutions www.Coscend.com <http://www.coscend.com/> ------------------------------------------------------------------ Real-time, Interactive Video Collaboration, Tele-healthcare, Tele-education, Telepresence Services, on the fly… ------------------------------------------------------------------ CONFIDENTIALITY NOTICE: See 'Confidentiality Notice Regarding E-mail Messages from Coscend Communications Solutions' posted at: http://www.Coscend.com/Terms_and_Conditions.html _____________________________________________ From: Coscend@OM [mailto:om.insig...@coscend.com] Sent: Friday, July 14, 2017 11:07 PM To: 'dev@openmeetings.apache.org' <dev@openmeetings.apache.org> Subject: RE: OpenMeetings 3.3.0: Backup Issue Dear Maxim, Here are the steps we are following for backing up data that fails to complete. Your guidance on how to resolve this issue would be appreciated. Steps -------- Java JDK 8 u 131 is in PATH. Verified Java_HOME and CLASSPATH have the right inputs. This was also verified by OpenMeetings running and importing data successfully. Launched MariaDB 10.x with database of OM 3.3.0. This was also verified by OpenMeetings running and importing data successfully. Verified environmental variables $RED5_HOME and $OM_CONTEXT. (1) echo command (2) This was also verified by OpenMeetings running and importing data successfully. cd <$RED5_HOME> Shutdown Red5 server. Verified red5 process is not on. ps aux | grep red5 CLI: ./admin.sh -v -b -file OM330.data.backup.zip >output.txt Backup fails. ------------- Complete Log ----- Context init: root INFO 07-14 22:51:47.766 ContextLoggingListener.java 125 81 ROOT [main] - Starting up context: root [INFO] [main] org.springframework.web.context.support.XmlWebApplicationContext - Refreshing Root WebApplicationContext: startup date [Fri Jul 14 22:51:47 CDT 2017]; root of context hierarchy [INFO] [main] org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from class path resource [applicationContext.xml] [INFO] [main] org.springframework.orm.jpa.LocalEntityManagerFactoryBean - Building JPA EntityManagerFactory for persistence unit 'openmeetings' [INFO] [main] org.springframework.orm.jpa.LocalEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'openmeetings' [INFO] [main] org.quartz.impl.StdSchedulerFactory - Using default implementation for ThreadExecutor [INFO] [main] org.quartz.core.SchedulerSignalerImpl - Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl [INFO] [main] org.quartz.core.QuartzScheduler - Quartz Scheduler v.2.2.3 created. [INFO] [main] org.quartz.simpl.RAMJobStore - RAMJobStore initialized. [INFO] [main] org.quartz.core.QuartzScheduler - Scheduler meta-data: Quartz Scheduler (v2.2.3) 'org.springframework.scheduling.quartz.SchedulerFactoryBean#0' with instanceId 'NON_CLUSTERED' Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally. NOT STARTED. Currently in standby mode. Number of jobs executed: 0 Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 10 threads. Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support persistence. and is not clustered. [INFO] [main] org.quartz.impl.StdSchedulerFactory - Quartz scheduler 'org.springframework.scheduling.quartz.SchedulerFactoryBean#0' initialized from an externally provided properties instance. [INFO] [main] org.quartz.impl.StdSchedulerFactory - Quartz scheduler version: 2.2.3 [INFO] [main] org.quartz.core.QuartzScheduler - JobFactory set to: org.springframework.scheduling.quartz.AdaptableJobFactory@2776015d <mailto:org.springframework.scheduling.quartz.AdaptableJobFactory@2776015d> [INFO] [main] org.apache.cxf.endpoint.ServerImpl - Setting the server's publish address to be / [INFO] [main] org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean - Creating Service {http://webservice.openmeetings.apache.org/}org.apache.openmeetings.webservice.CalendarWebService from class org.apache.openmeetings.webservice.CalendarWebService [INFO] [main] org.apache.cxf.endpoint.ServerImpl - Setting the server's publish address to be /CalendarService [INFO] [main] org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean - Creating Service {http://webservice.openmeetings.apache.org/}org.apache.openmeetings.webservice.ErrorWebService from class org.apache.openmeetings.webservice.ErrorWebService [INFO] [main] org.apache.cxf.endpoint.ServerImpl - Setting the server's publish address to be /ErrorService [INFO] [main] org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean - Creating Service {http://webservice.openmeetings.apache.org/}org.apache.openmeetings.webservice.GroupWebService from class org.apache.openmeetings.webservice.GroupWebService [INFO] [main] org.apache.cxf.endpoint.ServerImpl - Setting the server's publish address to be /GroupService [INFO] [main] org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean - Creating Service {http://webservice.openmeetings.apache.org/}org.apache.openmeetings.webservice.InfoWebService from class org.apache.openmeetings.webservice.InfoWebService [INFO] [main] org.apache.cxf.endpoint.ServerImpl - Setting the server's publish address to be /InfoService [INFO] [main] org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean - Creating Service {http://webservice.openmeetings.apache.org/}org.apache.openmeetings.webservice.FileWebService from class org.apache.openmeetings.webservice.FileWebService [INFO] [main] org.apache.cxf.endpoint.ServerImpl - Setting the server's publish address to be /FileService [INFO] [main] org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean - Creating Service {http://webservice.openmeetings.apache.org/}org.apache.openmeetings.webservice.RecordingWebService from class org.apache.openmeetings.webservice.RecordingWebService [INFO] [main] org.apache.cxf.endpoint.ServerImpl - Setting the server's publish address to be /RecordService [INFO] [main] org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean - Creating Service {http://webservice.openmeetings.apache.org/}org.apache.openmeetings.webservice.RoomWebService from class org.apache.openmeetings.webservice.RoomWebService [INFO] [main] org.apache.cxf.endpoint.ServerImpl - Setting the server's publish address to be /RoomService [INFO] [main] org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean - Creating Service {http://webservice.openmeetings.apache.org/}org.apache.openmeetings.webservice.ServerWebService from class org.apache.openmeetings.webservice.ServerWebService [INFO] [main] org.apache.cxf.endpoint.ServerImpl - Setting the server's publish address to be /ServerService [INFO] [main] org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean - Creating Service {http://webservice.openmeetings.apache.org/}org.apache.openmeetings.webservice.UserWebService from class org.apache.openmeetings.webservice.cluster.UserService [INFO] [main] org.apache.cxf.endpoint.ServerImpl - Setting the server's publish address to be /UserService [INFO] [main] org.springframework.context.support.DefaultLifecycleProcessor - Starting beans in phase 2147483647 [INFO] [main] org.quartz.core.QuartzScheduler - Scheduler org.springframework.scheduling.quartz.SchedulerFactoryBean#0_$_NON_CLUSTERED started. [INFO] [main] org.apache.wicket.Application - [OpenMeetings] init: Wicket extensions initializer [INFO] [main] org.apache.wicket.Application - [OpenMeetings] init: Wicket core library initializer [INFO] [main] org.apache.wicket.Application - [OpenMeetings] init: org.wicketstuff.dashboard.DashboardContextInitializer@2db86a7c <mailto:org.wicketstuff.dashboard.DashboardContextInitializer@2db86a7c> [INFO] [main] org.apache.wicket.Application - [OpenMeetings] init: DevUtils DebugBar Initializer [INFO] [main] org.apache.wicket.Application - [OpenMeetings] init: Wicket jQuery UI initializer [INFO] [main] org.apache.wicket.Application - [OpenMeetings] init: Wicket jQuery UI initializer (plugins) [INFO] [main] org.apache.wicket.Application - [OpenMeetings] init: Wicket Kendo UI initializer [INFO] [main] org.apache.wicket.Application - [OpenMeetings] init: Wicket Kendo UI initializer (theme-default) [INFO] [main] org.quartz.core.QuartzScheduler - Scheduler org.springframework.scheduling.quartz.SchedulerFactoryBean#0_$_NON_CLUSTERED shutting down. [INFO] [main] org.quartz.core.QuartzScheduler - Scheduler org.springframework.scheduling.quartz.SchedulerFactoryBean#0_$_NON_CLUSTERED paused. [INFO] [main] org.quartz.core.QuartzScheduler - Scheduler org.springframework.scheduling.quartz.SchedulerFactoryBean#0_$_NON_CLUSTERED shutdown complete. [ERROR] [main] org.apache.openmeetings.cli.Admin - Backup failed java.lang.NullPointerException: null at org.apache.openmeetings.backup.BackupExport.performExport(BackupExport.java:136) at org.apache.openmeetings.cli.Admin.process(Admin.java:301) at org.apache.openmeetings.cli.Admin.main(Admin.java:522)… Thank you. Sincerely, Hemant K. Sabat Coscend Communications Solutions www.Coscend.com <http://www.coscend.com/> ------------------------------------------------------------------ Real-time, Interactive Video Collaboration, Tele-healthcare, Tele-education, Telepresence Services, on the fly… ------------------------------------------------------------------ CONFIDENTIALITY NOTICE: See 'Confidentiality Notice Regarding E-mail Messages from Coscend Communications Solutions' posted at: http://www.Coscend.com/Terms_and_Conditions.html -----Original Message----- From: Maxim Solodovnik [mailto:solomax...@gmail.com] Sent: Friday, July 14, 2017 8:37 PM To: dev <dev@openmeetings.apache.org <mailto:dev@openmeetings.apache.org> >; om.insig...@coscend.com <mailto:om.insig...@coscend.com> Subject: Re: OpenMeetings 3.3.0: Backup Issue It seems I'm unable to reproduce this issue :( could you please provide more detailed steps? On Sat, Jul 15, 2017 at 2:21 AM, Coscend@OM <om.insig...@coscend.com <mailto:om.insig...@coscend.com> > wrote: > Dear OpenMeetings Community, > > > > Congratulations on releasing version 3.3.0! > > > > We would appreciate your vectors regarding an issue we are facing with > OM > 3.3.0 installation. The backup export is failing. Is anyone else > facing this issue? > > > > We successfully installed, configured and ran this version. We were > able to import data into this version. However, when we try to backup > export, it does not generate the zip file. > > > > Thank you. > > ---------------- > > Environment > > ---------------- > > CentOS 7.2 > > MariaDB 10.x > > JDK 8 u131 > > > > Cause > > --------- > > It is failing at > > BackupExport.java:136: public void performExport(File zip, boolean > includeFiles, ProgressHolder progressHolder) throws Exception { > > if (!zip.getParentFile().exists()) { > > > > Admin.java:301: export.performExport(f, > includeFiles, new ProgressHolder()); > > > > > > > > Log > > ----- > > . > > [INFO] [main] > org.springframework.context.support.DefaultLifecycleProcessor > - Starting beans in phase 2147483647 > > [INFO] [main] org.quartz.core.QuartzScheduler - Scheduler > org.springframework.scheduling.quartz.SchedulerFactoryBean#0_$_NON_CLU > STERED > started. > > . > > [ERROR] [main] org.apache.openmeetings.cli.Admin - Backup failed > > java.lang.NullPointerException: null > > at > org.apache.openmeetings.backup.BackupExport.performExport(BackupExport.java: > 136) > > at org.apache.openmeetings.cli.Admin.process(Admin.java:301) > > at org.apache.openmeetings.cli.Admin.main(Admin.java:522) > > . > > > > Sincerely, > > > > Hemant K. Sabat > > > > Coscend Communications Solutions > > <http://www.coscend.com/> www.Coscend.com <http://www.Coscend.com> > > ------------------------------------------------------------------ > > Real-time, Interactive Video Collaboration, Tele-healthcare, > Tele-education, Telepresence Services, on the fly. > > ------------------------------------------------------------------ > > CONFIDENTIALITY NOTICE: See 'Confidentiality Notice Regarding E-mail > Messages from Coscend Communications Solutions' posted at: > <http://www.coscend.com/Terms_and_Conditions.html> > http://www.Coscend.com/Terms_and_Conditions.html > > > > > > > -- WBR Maxim aka solomax --- This email has been checked for viruses by AVG. http://www.avg.com