V2.2.8 --> V3.0.4 stuck in limbo

Ask your questions regarding TimeTrex installation here.
Locked
andy
Posts: 19
Joined: Mon Aug 18, 2008 1:08 pm

V2.2.8 --> V3.0.4 stuck in limbo

Post by andy »

Over a year ago, I installed TimeTrex 2.2.8 Standard Edition on Fedora Core 8 and it worked flawlessly and I was always impressed by the knowledgable online and telephone support for my few questions. It did run awfully slowly, but it was on a crappy old linux machine, so I'll save the speed problem for a separate post.

The first serious problem occured in December 2009. TimeTrex failed to create a new pay period, so when people looked at their timesheets, the total hours shown at the bottom included both the November 2009 and December 2009 hours (and same went for January 2010). I talked to Support and was told that I shouldn't be using such an old version, that I should upgrade to the current version (3.0.4) and see if the problem went away. First I looked in the Forum and found a post that suggested manually using the ~/TimeTrex/timetrex/maint/AddPayPeriod.php. I tried that and it had no obvious effect. So, I decided to do the upgrade....

As per README instructions, I ran the ~/TimeTrex/backup_database command and, as a superset of backing up the timetrex.ini.php file, I copied the entire TimeTrex directory to backupTimeTrex, so at least I have those, as well as a saved copy of the 2.2.8 installer.bin, in case your suggestions involve using any of those....

I unzipped the 3.0.4 zipfile, renamed it TimeTrex, and tried to access http://192.168.1.11:8085/interface/install/install.php, but it was not found because in 2.2.8 interface/install/ was located in ~/TimeTrex/timetrex, but in 3.0.4 it is located one directory up, in ~/TimeTrex/. So, I created a timetrex subdirectory and moved the same-named components into it that were in the 2.2.8 timetrex directory.

Then I ran http://192.168.1.11:8085/interface/install/install.php and it found the script. It said that it successfully upgraded the database. Then it took me to a messed up version of the Login.php screen, where all the graphics and formatting were dead links. And, when I tried to log in with my username and password, it said they were not valid.

I typed to online support and it was suggested that I should perform a fresh installation of 3.0.4 using the installer.bin. I have spent a few hours trying unsuccessfully to get that to work. The 1st issue is that it can't use port 8085 (presumably because 2.2.8 already claimed it and has not been uninstalled?) so I told it to use 8086 and installation progressed... It gets thru the point of initializing the postgres database (supposedly... it does populate the ~/data/ directory) and then it asks for a password and fails. Here is the end of the install.log

-----------
Executing useradd postgres
Script exit code: 127

Script output:


Script stderr:
/bin/sh: useradd: command not found

Error running useradd postgres : /bin/sh: useradd: command not found
Initializing database
Executing /home/andy/TimeTrex/postgresql/bin/initdb -U postgres
Script exit code: 0

Script output:
The files belonging to this database system will be owned by user "andy".
This user must also own the server process.

The database cluster will be initialized with locales
COLLATE: en_US.UTF-8
CTYPE: en_US.UTF-8
MESSAGES: C
MONETARY: en_US.UTF-8
NUMERIC: C
TIME: en_US.UTF-8
The default database encoding has accordingly been set to UTF8.
The default text search configuration will be set to "english".

creating directory /home/andy/TimeTrex/postgresql/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers/max_fsm_pages ... 24MB/153600
creating configuration files ... ok
creating template1 database in /home/andy/TimeTrex/postgresql/data/base/1 ... ok
initializing pg_authid ... ok
initializing dependencies ... ok
creating system views ... ok
loading system objects' descriptions ... ok
creating conversions ... ok
creating dictionaries ... ok
setting privileges on built-in objects ... ok
creating information schema ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
copying template1 to postgres ... ok

Success. You can now start the database server using:

/home/andy/TimeTrex/postgresql/bin/postgres -D /home/andy/TimeTrex/postgresql/data
or
/home/andy/TimeTrex/postgresql/bin/pg_ctl -D /home/andy/TimeTrex/postgresql/data -l logfile start


Script stderr:

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the -A option the
next time you run initdb.

Executing /home/andy/TimeTrex/postgresql/bin/pg_ctl start
Script exit code: 0

Script output:
server starting

Script stderr:


Waiting for database to start...
Executing sleep 10
Script exit code: 0

Script output:


Script stderr:


Executing /home/andy/TimeTrex/postgresql/bin/psql -c "ALTER USER postgres PASSWORD '0bd6bcfc9'"
Script exit code: 2

Script output:


Script stderr:
psql.bin: FATAL: password authentication failed for user "postgres"

Error running /home/andy/TimeTrex/postgresql/bin/psql -c "ALTER USER postgres PASSWORD '0bd6bcfc9'" : psql.bin: FATAL: password authentication failed for user "postgres"

-----------
Since it seemed to want to create a user named postgres (there was no such user created by 2.2.8), and user Andy does not have permission to run sbin/useradd, I tried manually creating the user postgres as root, but that didn't get around the password error, and here I am stuck.

I then tried to go back to 2.2.8 by renaming the backupTimeTrex directory back to TimeTrex, and it lets me log in with my username and password but shows the waarnings:

WARNING: TimeTrex maintenance jobs have not run in the last 48hours. Please contact your TimeTrex administrator immediately.
WARNING: TimeTrex application version does not match database version. Please re-run the TimeTrex installer to complete the upgrade process.

and, if I try to look at my timesheet, it shows a blank page in the browser.

I feel really out in the cold right now, and I have all the employees e-mailing me their punch times, waiting for timetrex to get fixed..... :(

I know I have raised a few issues here, but what I really want is some help getting back to a functioning system, whether it is 2.2.8 or 3.0.4.

I think I need step-by-step idiot-proof instructions to unistall 2.2.8, properly install 3.0.4 and import the data from the old database... or in the worst case, have a clean 3.0.4 and re-input the user data and start fresh with time data for 2010 (but then I will not have vacation data that does not go with the calendar year...)

Thanks in advance for your help. I will e-mail a copy of this to you along with my phone number in case you'd call me....

Thanks,
Andy
shaunw
Posts: 7839
Joined: Tue Sep 19, 2006 2:22 pm

Re: V2.2.8 --> V3.0.4 stuck in limbo

Post by shaunw »

The issues here is several fold.

1. v2.2.8 of TimeTrex was released in March 2008, nearly two years ago, since then there has been about 17 new minor releases and one major release (v3.0). Even though we try our best to make the upgrade process as simple, easy and error proof as possible, we can only test upgrade paths going back to versions at most one year old.

2. The issue with your pay periods likely occurred due to a couple date or daylight saving time related bugs that were discovered in early versions of TimeTrex, but because you never upgraded, those bugs were never fixed in your version before they got to the point where they could cause problems.

3. It sounds like you tried to mix installation methods, you originally used the automated installer, then tried to upgrade with the .ZIP file, then went back to using the automated installer. This is definitely a bad idea, you need to pick one method and stick with it.

4. Installing two versions of TimeTrex using the automated installer is also an extremely bad idea. The fact that you had port conflicts tells me that there was a problem right from the start, and rather then change ports and have two copies running, you should have tried to correct the issue rather then work around it.

Anyways, I hate to make an example of your problems, but the whole point of this forum is so others can learn from it, so I will leave it at that.

Since I'm not really sure what has gone on, rather then try to fix your existing installation that may be corrupt beyond repair, we will just start fresh.

The first thing you need to do is confirm that you have excellent backups of your .SQL file (database dump) and timetrex.ini.php file to other computers/devices, just in case. I would then recommend that you uninstall TimeTrex v2.2.8 completely. Run the uninstaller, make sure the TimeTrex services are stopped (stop script in the TimeTrex directory), and move the TimeTrex directory to another computer or delete it completely. Finally reboot your server to make sure no TimeTrex processes are running whatsoever.

Once that is done, install a fresh copy of v3.0.4, but once it asks you to launch the web browser and go to http://192.168.1.11:8085/interface/install/install.php, stop at the license acceptance page. DO NOT accept it or go any further then that, we just want to confirm that the license acceptance page actually displays for you without problems.

Next you want to restore your database (.SQL) file as per the instructions on this post, since the backup was taken with such an old version of TimeTrex, and you are trying to restore with a newer version, you will need to manually edit some files:
http://forums.timetrex.com/viewtopic.php?p=6573#p6573

Once you have done that, you can continue through all the steps at: http://192.168.1.11:8085/interface/install/install.php and TimeTrex will upgrade the database from v2.2.8 to v3.0.4 and you should be up and running with a fresh install of the latest version.

From this point forward I highly recommend that you keep TimeTrex up to date, it will prevent this issue from happening in the future and as long as you use the automated installer to the same directory each time, the upgrade process shouldn't take more then 5 minutes and work flawlessly.
andy
Posts: 19
Joined: Mon Aug 18, 2008 1:08 pm

Re: V2.2.8 --> V3.0.4 stuck in limbo

Post by andy »

Ok, thank you Shaun,

I have made some progress. As suggested, I uninstalled 2.2.8. That worked fine, with the only error being that the Stop command at the end failed. I restarted the computer, and was able to successfully install 3.0.4 using the installer.bin script with no errors. I stoppped at the license screen, edited "restore_database" to have it use "timetrex" instead of "template1", chmod +x it so that I could run it, and manually ran the Start command so that the database server would respond on its port, and ran it. It took a long time - like 10 minutes, but eventually finished, ending like this:
CREATE INDEX
CREATE INDEX
CREATE INDEX
REVOKE
REVOKE
GRANT
GRANT
Done.
-----
I continued with the installation past the acceptance of terms, and, while it threw a lot of error messages, it eventually finished and said it was successful. Errors included:
ERROR: relation "company_generic_map" does not exist (several of these)
WARNING: nonstandard use of escape in a string literal at character 62 (hundreds of these)
HINT: Use the escape string syntax for escapes, e.g., E'\r\n'.
NOTICE: CREATE TABLE will create implicit sequence "user_identification_id_seq" for serial column "user_identification.id"
NOTICE: CREATE TABLE will create implicit sequence "break_policy_id_seq" for serial column "break_policy.id"
NOTICE: CREATE TABLE will create implicit sequence "hierarchy_level_id_seq" for serial column "hierarchy_level.id"
NOTICE: CREATE TABLE will create implicit sequence "hierarchy_user_id_seq" for serial column "hierarchy_user.id"
-----
I was able to log in normally, and things look "normal" (similar to how they looked in 2.2.8 ).
The performance seems to be improved (it takes less time for the browser screen to refresh after clicking something than it did before).

As for encouraging people to upgrade frequently... please realize that for non-sys-admins (we don't have anyone here like that), it is a bit daunting... nor did I know it was necessary. Maybe you have already done this, but here are some things that would be helpful:
1) when the admin logs in, have timetrex check your server for updates automatically and display a dialog box if one is found.
2) create a realtively automatic update... for example, the dialog could ask if the admin wants to update "now" and state that a system restart will be required. If the admin clicks "Ok" the files are downloaded, installed, and things restarted. The message could also check for missing prerequisites and either install them or give a clue how they should be installed manually before proceeding (for example if the user's php is too old, etc.) I am modeling these suggestions after the way "Software Update" works on Mac OS X.

So, now I am back to having a system that runs, but has no Pay Periods defined after October 31, 2009. I will create a separate posting to ask for your advice on how to fix it, since I'm afraid of screwing things up again by mucking around.

Thanks,
Andrew
shaunw
Posts: 7839
Joined: Tue Sep 19, 2006 2:22 pm

Re: V2.2.8 --> V3.0.4 stuck in limbo

Post by shaunw »

Good to hear you got things working again.

Just so you know TimeTrex does automatically check for updates, and it will display a little red "flag" beside the "Help" menu when it finds a new version. You can also go to Help -> About and click the "Check for Updates" button.

As for a more automated upgrade system, that is unlikely to happen anytime soon, as there is so much involved with the upgrades it needs to happen from an outside program that can't be started from a web browser. Under normal circumstances its an extremely easy process as it stands, download the latest version, run it, click Next about three times, wait for it to copy files and your done.
Locked