Opened 7 years ago

Closed 7 years ago

#912 closed defect (fixed)

Installer doesn't work

Reported by: maximal Owned by:
Priority: blocker Milestone: 0.9.6
Component: installer Version: 0.9.5
Keywords: Cc: killyourtv@…, cactus
Parent Tickets: Sensitive: no

Description

When i try to install I2P 0.9.5 version i get errors like this:
"Error: Could not find or load main class net.l2p.installer.copy".

I have both 32 and 64x latest version of java installed.
My OS is Windows7.

Subtickets

Attachments (3)

bug.png (34.0 KB) - added by cactus 7 years ago.
screenshot
install.xml (14.3 KB) - added by wobbol 7 years ago.
installer script from source
hs_err_pid4340.log (23.2 KB) - added by wobbol 7 years ago.
java error report

Download all attachments as: .zip

Change History (29)

comment:1 Changed 7 years ago by zzz

The only thing we can think of is a corrupt installer. Please verify the checksum or GPG signature, or try redownloading it from our site. Other than that, we're stumped.

comment:2 Changed 7 years ago by maximal

Checksum matches.

comment:3 Changed 7 years ago by zzz

Trying to think of what could be different about your setup, obvious thing is "both 32 and 64 versions of java". Don't know why you have that or whether you would want to remove one, or whether that would help.

With a quick web search I do find some issues raised re: izpack 64 bit Windows 7, but nothing that seems relevant. But again, it works for everybody else, so no good ideas.

comment:4 Changed 7 years ago by killyourtv

Odd. I tried clean installations in three different Win7 VMs.

x86 Win7: works
x64 Win7 with 32bit Java: works
x86 Win7 with 64bit Java: works

Just ffs I did the same in Vista (x86 & x64) and XP (x86 and x64). There were no issues. The entire process went flawlessly on each VM.

I have no ideas as to what would cause this. Unless…are you attempting to install on top of an already existing installation?

comment:5 Changed 7 years ago by killyourtv

I would think that would work but my trial installation runs were all with clean installs.

comment:6 Changed 7 years ago by nomailing

Cc: nomailing@… added

I have exact the same problem on my almost fresh install of windows 7 x64.
tried reinstalling java but still same problem. please fix this. thanks

comment:7 Changed 7 years ago by nomailing

Cc: nomailing@… removed

comment:8 in reply to:  6 Changed 7 years ago by killyourtv

Cc: killyourtv@… added

Replying to nomailing:

please fix this. thanks

That's the plan, of course, but we have to know *why* it's failing before it can be fixed.

Why does it fail for two users while I'm unable to reproduce the failure? I'm stumped ATM.

comment:9 Changed 7 years ago by wobbol

so i was having the same problem i have windows 7 x64 and then it dawned on me to try to install to its default location instead of to an alternate drive letter and it worked like a charm!
(my OS is on a small ssd and i like to keep most installations off it)

p.s. it was very hard for me to figure out how to make an account here and the directions here http://trac.i2p2.de/ saying that there are register and login links at the bottom of the page are just false

comment:10 Changed 7 years ago by nomailing

Thanks for your post.
I am actually also running on an SSD. But the installer fails for both cases: if i choose a destination on SSD or HDD doesn't matter.

So still not clear what really causes this. but the SSD might be the problem..?

comment:11 Changed 7 years ago by nomailing

btw, I had the same problem that i first couldn't find a way to post here. here is no login button and no register button, this is really confusing…

comment:12 Changed 7 years ago by cactus

Cc: cactus added

To understand how can I write here was difficult enough for me.
I want try i2p (I have only read about it earlier), but I have faced with this problem. I try install it on my old computer WinVista? 32bit and on new Win8 64bit. Java is updated. I have Kaspersky installed on both my computers before - KIS2009 & KIS2013 respectively. But I had unloaded it previously. Do you need any additional information?

Changed 7 years ago by cactus

Attachment: bug.png added

screenshot

comment:13 Changed 7 years ago by wobbol

would it help to post a list of all the errors in the installer b/c after clicking ok on the first one there about 7-8 more boxes. I've had similar problems with other java applications like minecraft telling me it cant find X function the problem in that case was a old java version but it seems every one here has thought of that and it looks like most have both 32 and 64 installed. so what is the installer doing at the point that it asks for these functions? it is unpacking or is it trying to execute the unpacked files? are we sure it knows where it unpacked the files?

Changed 7 years ago by wobbol

Attachment: install.xml added

installer script from source

comment:14 Changed 7 years ago by wobbol

ok so looked in the installers source and to finish the installation all you need to do is:
if you aren't 64 bit then
copy <installdir>\lib\wrapper\win32\wrapper.dll to <installdir>\lib
and <installdir>\lib\wrapper\win32\I2Psvc.exe to <installdir>

if you are 64bit then
copy <installdir>\lib\wrapper\win64\wrapper.dll to <installdir>\lib
and <installdir>\lib\wrapper\win64\I2Psvc.exe to <installdir>

(entries below are filtered from to the files i has left over in my install dir)

delete in the installdir

\lib\wrapper
install_i2p_service_osx.command
fixperms.bat
utility.jar

I've attached the installer script for reference(and for verification:P )

if you don't opt out for the windows service install in the installer it hangs after it warns you about the missing classes

comment:15 Changed 7 years ago by wobbol

note: after this you should be able to click the bat in the instal directory to install the windows nt service

Changed 7 years ago by wobbol

Attachment: hs_err_pid4340.log added

java error report

comment:16 Changed 7 years ago by wobbol

i figured there would be less technicly inclined people wnating to know the full list of files to remove altho these files shouldent impede your applacation from running the installer should har removed them
<arg value="$INSTALL_PATH\i2prouter"/>
<arg value="$INSTALL_PATH\install_i2p_service_unix"/>
<arg value="$INSTALL_PATH\install-headless.txt"/>
<arg value="$INSTALL_PATH\runplain.sh"/> <arg value="$INSTALL_PATH\osid"/>
<arg value="$INSTALL_PATH\postinstall.sh"/>
<arg value="$INSTALL_PATH\uninstall_i2p_service_unix"/>
<arg value="$INSTALL_PATH\lib\wrapper"/> <arg value="$INSTALL_PATH\eepget"/>
<arg value="$INSTALL_PATH/Start I2P Router.app"/>
<arg value="$INSTALL_PATH/net.i2p.router.plist.template"/>
<arg value="$INSTALL_PATH/install_i2p_service_osx.command"/>
<arg value="$INSTALL_PATH/uninstall_i2p_service_osx.command"/>
<arg value="$INSTALL_PATH/man"/> <arg value="$INSTALL_PATH/locale"/>

the restartable version of i2p does not function and gives this

E:\Program Files (x86)\i2p>I2Psvc.exe -c wrapper.config
wrapper | —> Wrapper Started as Console
wrapper | Java Service Wrapper Community Edition 32-bit 3.5.17
wrapper | Copyright © 1999-2012 Tanuki Software, Ltd. All Rights Reserved.
wrapper | http://wrapper.tanukisoftware.com
wrapper |
wrapper | Launching a JVM…
jvm 1 | WrapperManager?: Initializing…
jvm 1 | Starting I2P 0.9.5-0
jvm 1 | INFO: Native CPUID library jcpuid-x86-windows loaded from file
jvm 1 | INFO: Locally optimized native BigInteger? library loaded from file
jvm 1 | #
jvm 1 | # A fatal error has been detected by the Java Runtime Environment:
jvm 1 | #
jvm 1 | # Internal Error (safepoint.cpp:712), pid=4340, tid=4940
jvm 1 | # fatal error: Illegal threadstate encountered: 4
jvm 1 | #
jvm 1 | # JRE version: 7.0_17-b02
jvm 1 | # Java VM: Java HotSpot?™ Client VM (23.7-b01 mixed mode, sharing w
indows-x86 )
jvm 1 | # Failed to write core dump. Minidumps are not enabled by default on
client versions of Windows
jvm 1 | #
jvm 1 | # An error report file with more information is saved as:
jvm 1 | # E:\Program Files (x86)\i2p\hs_err_pid4340.log
jvm 1 | #
jvm 1 | # If you would like to submit a bug report, please visit:
jvm 1 | # http://bugreport.sun.com/bugreport/crash.jsp
jvm 1 | # The crash happened outside the Java Virtual Machine in native code.

jvm 1 | # See problematic frame for where to report the bug.
jvm 1 | #
wrapper | JVM exited unexpectedly.
wrapper | CTRL-C trapped. Shutting down.
wrapper | ←- Wrapper Stopped

not sure where this belongs any more

comment:17 Changed 7 years ago by zzz

  • login/register links at bottom of each page vanished when we updated trac. Fixed text on home page and on open tickets page. Entered ticket #917 for welterde to restore the links.
  • @wobbol In comment 9 above you say the copy problem goes away if you install to the default location? @killyourtv can you try to reproduce the problem when installing to a different drive?
  • @wobbol The JVM crash is in systray and is related to ticket #756 . Adding the following to wrapper.config should prevent systray from starting and crashing the JVM:

wrapper.java.additional.4=-Dsystray.disable=true

comment:18 Changed 7 years ago by zzz

Correction:

wrapper.java.additional.5=-Dsystray.disable=true

comment:20 in reply to:  17 Changed 7 years ago by wobbol

@zzz yes the problem goes away when installed to my c:\ and is present when i install to my e:\

@zzz nomailing seemed to have trouble no matter what drive letter he selected

@zzz the change in the wrapper.config functioned as intended except, the shortcut to the no window version stopped working and changing the start path from a lowercase drive letter to an uppercase one solved this

i was under the impression that windows was case insensitive

comment:21 in reply to:  17 Changed 7 years ago by killyourtv

Replying to zzz:

  • @wobbol In comment 9 above you say the copy problem goes away if you install to the default location? @killyourtv can you try to reproduce the problem when installing to a different drive?

I created a new virtual hard drive to test. I can reproduce it when I choose to install on another drive, such as E:\i2p.

comment:22 Changed 7 years ago by zzz

Priority: majorblocker

It seems likely this is an izpack bug:

http://jira.codehaus.org/browse/IZPACK-162

We're using izpack 4.3.0. The bug says it was created in September 2008 against 4.0.1 and resolved in 5.0 in December 2010… but izpack 5.0 is still in beta after many years: http://izpack.org/downloads/

The bug is not marked as being backported to the 4.3.x series, even though 4.3.4 and 4.3.5 were released in 2011: http://jira.codehaus.org/browse/IZPACK?selectedTab=com.atlassian.jira.plugin.system.project%3Achangelog-panel

Our options are:

  • Look to see (or test) if it was backported in 4.3.5 even though it isn't marked as such;
  • Backport the fix ourselves (the ticket has some suggested code)
  • Upgrade izpack to 5.0.0-beta11
  • Rewrite our install.xml somehow to avoid the problem

Bumping to blocker.

comment:23 Changed 7 years ago by zzz

The 4.3.4, 4.3.5, and 5.0.0-betax packages don't have the source in them any more (the last was 4.3.3). What a pain.

I downloaded the 4.3.5 and 5.0.0-head from the tags on git.codehaus http://git.codehaus.org/gitweb.cgi?p=izpack.git (5.0.0-beta11 isn't tagged, only beta 10, even though 11 was announced in December http://news.izpack.org/ )

Anyway.

4.3.5 does not have the fix.

And seeing how slow in coming 5.0.0 is, I'm not real eager to switch to it. Especially since I think it has major changes we don't want to get into.

The backport is only a few lines but it might be a pain to build it.

comment:24 Changed 7 years ago by zzz

  • As a trial run I extracted the 4.3.5 source, then deleted everything that wasn't needed to compile FileExecutor?.java (the source of the bug in izpack 162). That left me with 11 java files. I used their build.xml (target compile.compiler).
  • From inspecting their code, it's clear the buggy method FileExecutor?.buildClassPath() is only called if no main class is specified (see line 301 vs. 307), so that's why it worked in 0.9.4 but not in 0.9.5
  • Given that, I think the easiest fix is to write a new main class for install.jar that just selects what to do. pseudocode:
public void main(String[] args) {
  if (args.length == 0)
    throw IAE
  String cmd = args[0];
  args = shift args;
  if (cmd.equals("copy"))
      Copy.main(args);
  else if ...
  • We may want to update from 4.3.0 to 4.3.5 anyway, as long as we're thinking about it. I see some uninstaller bug fixes in 4.3.1-4.3.5. I can't find an uninstaller trac ticket of ours but I know there's some forum posts.

comment:25 in reply to:  24 Changed 7 years ago by killyourtv

Replying to zzz:

I see some uninstaller bug fixes in 4.3.1-4.3.5. I can't find an uninstaller trac ticket of ours but I know there's some forum posts.

The problems mentioned in the forum may have been fixed in 0.9.1-13. Ticket #656 was filed for uninstaller hangs and should have been fixed with 7c5c1a9143c8b86fb183e6737262501cc8dd6d45. They were caused by bugs in our service installation and removal batch files not issues with izpack itself.

Even if "we" go with the fix proposed with the pseudocode, an update of izpack for 0.9.6 (or 0.9.7 so it gets more testing) would probably be a good thing.

comment:26 Changed 7 years ago by zzz

Resolution: fixed
Status: newclosed

New net.i2p.installer.Main in branch i2p.i2p.zzz.winfix095 rev f1af79291e7ccffb2c5a4eea36c4bd057fc87cce
install.xml changes in branch i2p.i2p.zzz.winfix095 rev cf3dc3961900dd6222493cd4da04969bd9af3aad
0.9.5-win1 released on April 21 with fixes for this ticket and #919, #920; posted on our download page.
Propped to trunk in 0.9.5-12 rev a5ec2f0ce37b17af85ff17ff30b89b6e26894373

We may or may not update to izpack 4.3.5 in 0.9.6 or 0.9.7 but that's unrelated to this ticket.

Note: See TracTickets for help on using tickets.