Difference between revisions of "App Install"

From Amahi Wiki
Jump to: navigation, search
 
(11 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
__TOC__
 +
 
Occasionally Amahi [https://www.amahi.org/apps applications] fail to install properly.  This is often noted by error messages in the application install log (/var/log/amahi-app-install.log).  
 
Occasionally Amahi [https://www.amahi.org/apps applications] fail to install properly.  This is often noted by error messages in the application install log (/var/log/amahi-app-install.log).  
  
Line 27: Line 29:
 
= Reasons for Failure =
 
= Reasons for Failure =
 
Reasons for failure vary, but the most common are:
 
Reasons for failure vary, but the most common are:
<ul>
+
<ul><li> Network connection
<li> Network connection
+
<small><pre>#<RuntimeError: run_script had to KILL this script. it was taking too long. sorry.>,
<li> Install script:
+
/var/hda/platform/html/lib/system_utils.rb:66:in `run_script',
<ul>
+
/var/hda/platform/html/app/models/app.rb:241:in `block in install_bg',
<li> Taking too long
+
/var/hda/platform/html/app/models/app.rb:240:in `chdir',
<small><pre>=======  app install begin      @  2014-05-03 14:33:00 -0400 ==========
+
/var/hda/platform/html/app/models/app.rb:240:in `install_bg',
Installing  app id yi7uxa8mlb under /var/hda/platform/html/script/.. ENV=production
+
/var/hda/platform/html/script/install-app:86:in `install_or_uninstall',
Your HDA services have been restarted.
+
/var/hda/platform/html/script/install-app:107:in `main',
Your HDA services have been restarted.
+
/var/hda/platform/html/script/install-app:119:in `<main>'</pre></small></li>
NOTE: file /var/hda/tmp/amahi-download-cache/956319338e8752e6a8f544423df61187d8b7e320 written in cache
+
<li> Insufficient privileges
/var/hda/platform/html/lib/system_utils.rb:66:in `run_script': run_script had to
+
<small><pre>#<Errno::EACCES: Permission denied @ dir_s_mkdir - /var/hda/web-apps/bandwidthd>,
KILL this script. it was taking too long. sorry. (RuntimeError)
 
        from /var/hda/platform/html/app/models/app.rb:241:in `block in install_bg'
 
        from /var/hda/platform/html/app/models/app.rb:240:in `chdir'
 
        from /var/hda/platform/html/app/models/app.rb:240:in `install_bg'
 
        from /var/hda/platform/html/script/install-app:86:in `install_or_uninstall'
 
        from /var/hda/platform/html/script/install-app:107:in `main'
 
        from /var/hda/platform/html/script/install-app:119:in `<main>'</pre></small></li>
 
<li> Incorrect syntax</li>
 
<li> Insufficient privileges</li>
 
<pre>#<Errno::EACCES: Permission denied @ dir_s_mkdir - /var/hda/web-apps/bandwidthd>,
 
 
/usr/share/ruby/fileutils.rb:252:in `mkdir',
 
/usr/share/ruby/fileutils.rb:252:in `mkdir',
 
/usr/share/ruby/fileutils.rb:252:in `fu_mkdir',
 
/usr/share/ruby/fileutils.rb:252:in `fu_mkdir',
Line 60: Line 52:
 
/var/hda/platform/html/script/install-app:86:in `install_or_uninstall',
 
/var/hda/platform/html/script/install-app:86:in `install_or_uninstall',
 
/var/hda/platform/html/script/install-app:107:in `main',
 
/var/hda/platform/html/script/install-app:107:in `main',
/var/hda/platform/html/script/install-app:119:in `<main>'</pre>
+
/var/hda/platform/html/script/install-app:119:in `<main>'</pre></small></li>
:To correct, as ''root'' user (or precede with <code>sudo</code>):
+
:To correct, as ''root'' user (or precede with <code>sudo</code>) do:
 
  chown -R apache:users /var/hda/web-apps
 
  chown -R apache:users /var/hda/web-apps
</ul>
+
<li> Source file is unavailable:
<li> Application source file is unavailable:</li>
 
 
<ul>
 
<ul>
 
<li> New version</li>
 
<li> New version</li>
 
<li> File moved</li>
 
<li> File moved</li>
<li> Wrong SHA1 hash
+
<li> Wrong SHA1 hash</li></ul>
 
<small><pre>WARNING: primary downloaded file /tmp/amahi-download-
 
<small><pre>WARNING: primary downloaded file /tmp/amahi-download-
 
cache/b224eae4f30c011cbe6eae3c81d662f199eaa85f did not pass signature check - got  
 
cache/b224eae4f30c011cbe6eae3c81d662f199eaa85f did not pass signature check - got  
 
2da58737f99c63f47983db27789cf4b989975220, expected  
 
2da58737f99c63f47983db27789cf4b989975220, expected  
b224eae4f30c011cbe6eae3c81d662f199eaa85f</pre></small></li>
+
b224eae4f30c011cbe6eae3c81d662f199eaa85f</pre></small>
</ul></ul>
+
<li>No space left on root (/) partition
 +
<small><pre>#<Errno::ENOSPC: No space left on device @ io_write - /var/hda/tmp/amahi-download-cache/3ab7164c607c124b97e08dd25d3a9712afebde2b>,
 +
/var/hda/platform/html/lib/downloader.rb:100:in `write',
 +
/var/hda/platform/html/lib/downloader.rb:100:in `block in download',
 +
/var/hda/platform/html/lib/downloader.rb:100:in `open',
 +
/var/hda/platform/html/lib/downloader.rb:100:in `download',
 +
/var/hda/platform/html/lib/downloader.rb:50:in `download_and_check_sha1',
 +
/var/hda/platform/html/app/models/app.rb:200:in `install_bg',
 +
/var/hda/platform/html/script/install-app:86:in `install_or_uninstall',
 +
/var/hda/platform/html/script/install-app:107:in `main',
 +
/var/hda/platform/html/script/install-app:119:in `<main>'</pre></small></li>
 +
:Empty the ''/var/hda/tmp/amahi-download-cache'' directory.
 +
rm -rf /var/hda/tmp/amahi-download-cache/*
 +
</ul>
  
 
= Recipe for Success =
 
= Recipe for Success =
Line 126: Line 130:
 
  rm -rf owncloud3
 
  rm -rf owncloud3
 
</ul></ul>
 
</ul></ul>
* Finally check the HDA database ''hda_production'' (''webapps'' table).  The safest way is to use a web application such as [https://www.amahi.org/apps/adminer Adminer] or [https://www.amahi.org/apps/phpmyadmin phpMyAdmin].
+
* Finally check the HDA database ''hda_production'' (''webapps'' table).   
 
** Look to see if there is an entry for each app that failed to install correctly.
 
** Look to see if there is an entry for each app that failed to install correctly.
 
** Remove the row(s) that exist for the app (i.e. id 4, 5, 6, and 7)
 
** Remove the row(s) that exist for the app (i.e. id 4, 5, 6, and 7)
Line 142: Line 146:
 
+----+------------+
 
+----+------------+
 
5 rows in set (0.00 sec)</pre></blockquote>
 
5 rows in set (0.00 sec)</pre></blockquote>
 +
 +
The safest way is to use a web application such as [https://www.amahi.org/apps/adminer Adminer] or [https://www.amahi.org/apps/phpmyadmin phpMyAdmin].  TO do it via command line, execute the command below for each ''id' that needs to be deleted from the database:
 +
echo "delete from webapps where id=2" | mysql -uroot -p hda_production
 +
 +
::'''WARNING:''' Please see [[Database Root Password]] for the appropriate login password.
  
 
Once these steps are complete, it should be safe to try and install the application.  Monitor the '''/var/log/amahi-app-installer.log''' file for progress and errors via command line:
 
Once these steps are complete, it should be safe to try and install the application.  Monitor the '''/var/log/amahi-app-installer.log''' file for progress and errors via command line:
Line 147: Line 156:
  
 
If the app continues to fail, recommend you seek professional assistance by [[Submit Bug Report|submitting a bug report]].
 
If the app continues to fail, recommend you seek professional assistance by [[Submit Bug Report|submitting a bug report]].
 +
 +
 +
Back to the [[Troubleshooting]].

Latest revision as of 03:37, 18 June 2017

Occasionally Amahi applications fail to install properly. This is often noted by error messages in the application install log (/var/log/amahi-app-install.log).

=======  app install begin      @  2014-05-03 07:42:37 -0500 ==========
Installing   app id qf1tweahyo under /var/hda/platform/html/script/.. ENV=produc
tion
NOTICE: redirected 'http://downloads.sourceforge.net/project/linfo/Linfo%20Stabl
e%20Releases/linfo-1.11.tar.gz' --> 'http://iweb.dl.sourceforge.net/project/linf
o/Linfo%20Stable%20Releases/linfo-1.11.tar.gz' ...
file /var/hda/tmp/amahi-download-cache/9306c736dc7197b9a3ed6b4c9395d4ab6e779a48
written in cache
Your HDA services have been restarted.
Your HDA services have been restarted.
mv: cannot stat ‘unpack’: No such file or directory
sed: can't read html/config.inc.php: No such file or directory
chown: cannot access ‘html/lib’: No such file or directory
/tmp/run_script20140503-14160-1huv0uh: line 47: html/config.inc.php: No such fil
e or directory
App: Linfo installed
=======  app install end        @  2014-05-03 07:42:43 -0500 ==========

Other times, you may receive notice in the Dashboard.

DashboardAppError.png

We take these seriously and have incorporated additional error checking/prevention methods. Unfortunately they don't catch everything.

Reasons for Failure

Reasons for failure vary, but the most common are:

  • Network connection
    #<RuntimeError: run_script had to KILL this script. it was taking too long. sorry.>,
    /var/hda/platform/html/lib/system_utils.rb:66:in `run_script',
    /var/hda/platform/html/app/models/app.rb:241:in `block in install_bg',
    /var/hda/platform/html/app/models/app.rb:240:in `chdir',
    /var/hda/platform/html/app/models/app.rb:240:in `install_bg',
    /var/hda/platform/html/script/install-app:86:in `install_or_uninstall',
    /var/hda/platform/html/script/install-app:107:in `main',
    /var/hda/platform/html/script/install-app:119:in `<main>'
  • Insufficient privileges
    #<Errno::EACCES: Permission denied @ dir_s_mkdir - /var/hda/web-apps/bandwidthd>,
    /usr/share/ruby/fileutils.rb:252:in `mkdir',
    /usr/share/ruby/fileutils.rb:252:in `fu_mkdir',
    /usr/share/ruby/fileutils.rb:226:in `block (2 levels) in mkdir_p',
    /usr/share/ruby/fileutils.rb:224:in `reverse_each',
    /usr/share/ruby/fileutils.rb:224:in `block in mkdir_p',
    /usr/share/ruby/fileutils.rb:210:in `each',
    /usr/share/ruby/fileutils.rb:210:in `mkdir_p',
    /var/hda/platform/html/app/models/app.rb:364:in `mkdir',
    /var/hda/platform/html/app/models/app.rb:440:in `install_webapp',
    /var/hda/platform/html/app/models/app.rb:208:in `install_bg',
    /var/hda/platform/html/script/install-app:86:in `install_or_uninstall',
    /var/hda/platform/html/script/install-app:107:in `main',
    /var/hda/platform/html/script/install-app:119:in `<main>'
  • To correct, as root user (or precede with sudo) do:
    chown -R apache:users /var/hda/web-apps
    
  • Source file is unavailable:
    • New version
    • File moved
    • Wrong SHA1 hash
    WARNING: primary downloaded file /tmp/amahi-download-
    cache/b224eae4f30c011cbe6eae3c81d662f199eaa85f did not pass signature check - got 
    2da58737f99c63f47983db27789cf4b989975220, expected 
    b224eae4f30c011cbe6eae3c81d662f199eaa85f
  • No space left on root (/) partition
    #<Errno::ENOSPC: No space left on device @ io_write - /var/hda/tmp/amahi-download-cache/3ab7164c607c124b97e08dd25d3a9712afebde2b>,
    /var/hda/platform/html/lib/downloader.rb:100:in `write',
    /var/hda/platform/html/lib/downloader.rb:100:in `block in download',
    /var/hda/platform/html/lib/downloader.rb:100:in `open',
    /var/hda/platform/html/lib/downloader.rb:100:in `download',
    /var/hda/platform/html/lib/downloader.rb:50:in `download_and_check_sha1',
    /var/hda/platform/html/app/models/app.rb:200:in `install_bg',
    /var/hda/platform/html/script/install-app:86:in `install_or_uninstall',
    /var/hda/platform/html/script/install-app:107:in `main',
    /var/hda/platform/html/script/install-app:119:in `<main>'
  • Empty the /var/hda/tmp/amahi-download-cache directory.
    rm -rf /var/hda/tmp/amahi-download-cache/*
    

Recipe for Success

There are some recommendation users can follow to help correct or prevent these problems.

DON'T

  1. Refresh your web browser or navigate from the page while an application is installing.
  2. Try to install an application after it initially fails. Need to diagnose issue.


DO

  1. Look at the log for details of why the app install failed.
  2. View the Dashboard Apps tab, Installed section for the app.
  3. Check /var/hda/web-apps to ensure the app did not partially install.
  4. Search the forums for a similar issue and potential solution.
  5. Visit the IRC, #amahi channel for immediate assistance.
  6. Submit a bug report. Provide details to help with debugability of the issue.

Clean Up Failed Web App Install

DISCLAIMER: The steps below should ONLY be attempted by advanced users. If you don't know what you are doing, recommend you seek professional assistance or you could break your HDA!


NOTE: We will use owncloud as an example of the application that failed to install.

A web app install was unsuccessful, but it appears partially installed. This often happens and repeatedly trying to install without clean up results in multiple failed attempts. For example, 4 failed attempts of ownCloud would create owncloud, owncloud1, owncloud2, owncloud3.

To return your HDA to a safe state for another install attempt, the following may help:

  • Navigate to the Network tab, DNS Aliases section in the Amahi Dashboard
    • Make note of the URL name(s)
    • Remove each entry for the failed application by selecting Delete
  • If the app has a database, execute the following command:
hda-create-db-and-user -d owncloud
  • The next steps must be done from the command line as root user:
    • Navigate to /etc/httpd/conf.d and determine file(s) to remove
    • ls -al
    • Remove each ####-app.conf (substitute the number for #### and URL name for app) file
    • cd /etc/httpd/conf.d rm -rf 1001-owncloud.conf rm -rf 1002-owncloud1.conf rm -rf 1003-owncloud2.conf rm -rf 1004-owncloud3.conf
    • Then as root user, restart apache
    • sysemctl restart httpd
    • Next, navigate to /var/hda/web-apps
    • cd /var/hda/web-apps
    • Remove each app directory
    • rm -rf owncloud rm -rf owncloud1 rm -rf owncloud2 rm -rf owncloud3
  • Finally check the HDA database hda_production (webapps table).
    • Look to see if there is an entry for each app that failed to install correctly.
    • Remove the row(s) that exist for the app (i.e. id 4, 5, 6, and 7)


EXAMPLE
MariaDB [hda_production]> select id,name from webapps;
+----+------------+
| id | name       |
+----+------------+
|  1 | phpsysinfo |
|  4 | owncloud   |
|  5 | owncloud1  |
|  6 | owncloud2  |
|  7 | owncloud3  |
+----+------------+
5 rows in set (0.00 sec)

The safest way is to use a web application such as Adminer or phpMyAdmin. TO do it via command line, execute the command below for each id' that needs to be deleted from the database:

echo "delete from webapps where id=2" | mysql -uroot -p hda_production
WARNING: Please see Database Root Password for the appropriate login password.

Once these steps are complete, it should be safe to try and install the application. Monitor the /var/log/amahi-app-installer.log file for progress and errors via command line:

tail -f /var/log/amahi-app-installer.log

If the app continues to fail, recommend you seek professional assistance by submitting a bug report.


Back to the Troubleshooting.