FAQ für den appleJuice Core

appleJuice Core

1. Wie teile ich dem Core mehr RAM zu?

2. Core Meldungen

Der Core gibt im laufenden Betrieb ständig Meldungen aus, die man fast immer ignorieren kann, solange alles läuft. Folgende Meldungen sind bekannt:

2.1. Error in shareidx.xml found hashing skipped

  • Meldung: Error in shareidx.xml found hashing skipped
  • Problem: kein Upload und/oder kein Download
  • Ursache: der Core wurde während schreibens der shareidx.xml nicht richtig beendet
  • Lösung:
    • beende den Core
    • lösche die Datei shareidx.xml, siehe Punkt 15
    • starte den Core erneut
Die shareidx.xml kann mit einem Texteditor auch manuell korrigiert werden.

2.2. Close connection cause of inactivity

  • Meldung:
    • Close connection cause of inactivity
    • Error while read: Eine bestehende Verbindung wurde softwaregesteuert durch den Hostcomputer abgebrochen
  • Problem: sehr wahrscheinlich keins
  • mögliche Ursachen:
    • Core auf der Gegenseite ist (plötzlich) offline
    • Du oder der User auf der Gegenseite hat DS-Lite
    • Probleme mit der Internetverbindung
    • Zu hohe CPU-Auslastung
    • zu viele gleichzeitige Downloads
    • Zu hoch eingestellte Verbindungsanzahl
Diese Meldungen sind normal und bedeuten erstmal nichts Schlimmes!

2.3. error starting tcpserver: Address already in use

  • Meldung: error starting tcpserver: Address already in use
  • Problem: Core startet nicht
  • Ursache: einer oder beide konfigurierte Ports des Core sind bereits in Verwendung
  • Lösung:
    • prüfe über einen TaskManager ob der Core (noch) läuft
    • starte deinen Computer neu
    • lösche die settings.xml Konfiguration, siehe Punkt 15

2.4. java.io.IOException: invalid data

  • Meldung: java.io.IOException: invalid data
  • Ursache: Fehler im Dateisystem (ggf auch im RAM)
  • Problem: Core hängt sich dabei im Regelfall auf und lädt nichts mehr.
  • Lösung:
    • Die Laufwerke auf welchem sich der Share befindet auf Fehler überprüfen lassen
    • Arbeitsspeicher überprüfen, z.B. mit Memtest86

2.5. temp seems to be temp. sharechecking skipped.

  • Meldung: temp seems to be temp. sharechecking skipped.
  • Problem: kein Upload und kein Download
  • Ursache: das temp Verzeichnis wurde zusätzlich als freigabe hinzugefügt
  • Lösung: entferne das temp Verzeichnis aus den Freigaben

2.6. closing serverconnection: * - not enough in buffer

  • Meldung: closing serverconnection: * - not enough in buffer
  • Ursache: zu wenig RAM für den Core
  • Problem: Core hängt sich danach meist auf
  • Wann: Oft passiert dies bei einem größeren share (mehrere TB) und dem gleichzeitigen Download mit voller Geschwindigkeit.
  • Lösung:

2.7. close download bzw. close upload

Die Übertragung eines Chunks wurde erfolgreich abgeschlossen.

2.8. you have to wait 30 minutes until reconnect

  • Meldung: you have to wait 30 minutes until reconnect
  • Problem: Serverlogin nicht möglich
  • Ursache: zu viele Serverwechsel in kurzer Zeit.
  • Lösung: 30 Minuten warten oder den Core neustarter

2.9. error logging into server: not enough in buffer

  • Meldung: error logging into server: not enough in buffer
  • Problem: Serverlogin nicht möglich
  • Ursache: Der Server, mit dem sich verbunden werden soll, ist voll.
  • Lösung: versuch einen anderen Server

2.10. found defect part in xx.data

  • Meldung: found defect part in xx.data
  • Problem: sehr wahrscheinlich keins
  • Ursache: Übertragungsproblem
  • Lösung: keine. Der Chunk wurde vom Core verworfen und wird neu geladen

2.11. error while reading file XY.xx

  • Meldung: error while reading file XY.xx
  • Problem: Die Datei wird nicht mehr geshared
  • Ursache: Die Datei wurde verschoben oder umbenannt während der Core noch lief
  • Lösung: Der Core muss mit aller Gewissheit neu gestartet werden

2.12. tempdir lies under incomingdir

  • Meldung: tempdir lies under incomingdir. please change
  • Problem: kein Upload und kein Download
  • Ursache: das temp Verzeichnis wurde unterhalb des Incoming Ordner angegeben
  • Lösung: konfigurieren das temp Verzeichnis außerhalb des Incoming Verzeichnis

2.13. incomingdir lies under tempdir

  • Meldung: incomingdir lies under tempdir. please change
  • Problem: kein Upload und kein Download
  • Ursache: das incoming Verzeichnis wurde unterhalb des Temp Ordner angegeben
  • Lösung: konfigurieren das incoming Verzeichnis außerhalb des temp Verzeichnis

2.14. Please change your nickname

  • Meldung: Please change your nickname
  • Ursache: Dein konfigurierter Nickname enthält oder beginnt mit nonick
  • Lösung: Ändere deine Nickname

2.15. serverlogin not available

  • Meldung: serverlogin not available
  • Ursache: Die Ursache steht immer über dieser Fehlermeldung
  • Meldung: failure: incorrect link
  • Problem: der ajfsp Link wird nicht vom Core übernommen
  • Ursache: der Link Defekt
  • Lösung: probier als Gegentest einen anderen Link

2.17. Incoming directory doesn't exist

  • Meldung: Incoming directory doesn't exist
  • Ursache: Der eingestellte Incoming-Ordner konnte nicht angelegt werden
  • Lösung: Ändere den Incoming Ordner oder erstelle ihne manuell

2.18. Temp directory doesn't exist

  • Meldung: Temp directory doesn't exist
  • Ursache: Der eingestellte Temp-Ordner konnte nicht angelegt werden
  • Lösung: Ändere den Temp Ordner oder erstelle ihne manuell

2.18. cannot create "Ordner"

  • Meldung: cannot create "Ordner"
  • Ursache: fehlende Berechtigungen
  • Lösung: erstelle den erwähnten Ordner manuell oder korrigiere die Berechtigungen

2.20. error copy file from temp to incoming directory

  • Meldung: error copy file from temp to incoming directory
  • Problem: die eigentlich fertige Datei liegt nicht im Incoming Ordner
  • mögliche Ursachen:
    1. Festplatte voll
    2. Core beim fertigstellen beendet
    3. PC heruntergefahren, ohne den Core sauber zu beenden
  • mögliche Lösungen:
    1. den Incoming Ordner auf einen anderen Datenträger verweisen
    2. das beenden des Core abwarten
    3. vor dem Herunterfahren den Core über ein GUI oder exit beenden

2.21. error renaming "1.data" to "filename.iso"

  • Meldung: error renaming "C:\XY\temp\1.data" to "C:\XY\incoming\filename.iso"
  • Problem: Fehler beim Umbenennen des Files, z.B. beim Fertigstellen
  • Ursache: können Sonderzeichen im Dateinamen sein oder Festplatte voll
  • Lösung: das fertige File liegt als *.ready Datei im Temp Ordner und kann manuell verschoben werden

2.22. java.lang.ArrayIndexOutOfBoundsException: Array index out of range

  • Meldung: java.lang.ArrayIndexOutOfBoundsException: Array index out of range
  • Problem: kein Upload und kein Download
  • Ursache: leider noch immer Unbekannt
  • Lösung: Es hilft ausschließlich ein Core neustart

3. Was hat es mit dem 2GB Limit auf sich?

Vorab: Es ist kein Limit, sondern ein Bug.

AJ wurde zu einer Zeit programmiert, wo 64Bit Betriebssysteme noch nicht weit verbreitet waren und auch die Dateigrößen noch relativ klein waren (meist unter 1GB).

Das Problem ist daher die Umsetzung, wie AJ intern mit Zahlen wie bspw. Größenangaben umgeht. Diese werden an den meisten Stellen noch als Java Datentyp int behandelt, was einem Maximum von 2,147,483,647 Bytes entspricht (2GB).

Leider wird nur beim einlesen von Dateien (sharecheck) der eigentlich benötigte Datentyp long verwendet was einem Maximum von 9,223,372,036,854,775,807 Bytes entspricht.

Es reicht jedoch nicht, nur im Core den Datentyp von int auf long zu korrigieren. Die Größenangaben werden ebenfalls an die Server von AJ übermittelt, somit müss(t)en auch diese angepasst werden.

4. Core Befehle

Die Steuerung von AJ findet hauptsächlich über das GUI statt. Hier nun die (wenigen) Befehle, die man im Core eingeben kann:

help listet die möglichen Corebefehle auf
chpw mit dieser Funktion kann man das Passwort ändern
ram Anzeige des benutzten/freien RAM
gc Garbagecollector ... entmüllt den RAM ein wenig
sharecheck Startet die Shareüberprüfung
exit selbsterklärend ;) mit diesem Befehl wird der Core beendet

5. Core pausieren

Der Core kann nicht ohne weiteres pausiert werden, es gibt jedoch andere Möglichkeiten:

Allgemein alle Downloads pausieren und Upload auf ein Minimum reduzieren
Windows mit dem Process Explorer die javaw.exe des Core auf suspend setzen
Linux Pausieren: pkill -STOP -f ajcore ∣ Fortsetzen: pkill -CONT -f ajcore
macOS Pausieren: pkill -STOP -f AJCore ∣ Fortsetzen: pkill -CONT -f AJCore
Docker Pausieren: docker pause ajcore ∣ Fortsetzen: docker unpause ajcore

6. Dateitypen im Temp Verzeichnis

Im Temp Ordner sollten nur 3 Dateiarten vorhanden sein:

  • *.data → Data File eines Files das gerade gesaugt wird, enthält die bereits geladenen Daten
  • *.part → enthält Informationen für die *.data, wie Dateiname etc, braucht AJ um das File zu saugen
  • *.ready → eine fertige Datei, bei der ein Fehler beim Umbenennen und Kopieren in den Incoming Ordner aufgetreten ist. Einfach manuell den Dateinamen ändern und in den Incoming Ordner schieben und das File ist fertig ;)
  • *.* → Fertige Files .. liegen auch manchmal noch im Temp Ordner wenn es Probleme beim Kopieren in den Incoming Ordner gab. Einfach manuell in den Incoming Ordner kopieren.

7. Warum ist der Core nicht Open Source?

Der Core ist kein Open Source weil sich sonst das Credit-System zu einfach abschalten ließe.

8. Was hat es mit Core 0.32.101.02 auf sich?

Der Core 0.32.101.02 war der letzte Beta-Core von muhviehstar, welcher es aber nie an die Öffentlichkeit geschafft hat.

Welche Änderungen es gab oder ob dieser jemals wieder auftaucht ist ungewiss.

9. In welcher Sprache ist der Core geschrieben?

Der appleJuice Core ist in Java geschrieben.

10. Wer hat den appleJuice Core programmiert?

muhviehstarr

11. Wird am Core noch weiter entwickelt?

  • Kurz: Nein
  • Der originale Quellcode liegt leider nur veraltet als auch unvollständig vor
  • Der vorliegende Quellcode vom Server ist noch älter, dieser müsste neu Entwickelt werden
Die jüngsten Änderungen wurden lediglich mit einem ByteCode Editor durchgeführt!

12. Download wechselt selbstständig auf Pause

  • Problem: Download wechselt selbstständig auf Pause
  • mögliche Ursachen:
    1. automatischen Powerdowload im JavaGUI eingeschaltet.
    2. Credits sind deutlich unter 20 MB
    3. Festplatte ist voll
    4. defekter Datenträger
  • mögliche Lösung:
    1. schalte den automatischen Powerdownload im JavaGUI ab
    2. Downloads pausieren bis genug Credits angesammelt wurden
    3. incoming Verzeichnis auf Datenträger mit mehr Platz verschieben
    4. vom Betriebssystem den betroffenen Datenträger überprüfen lassen

13. Datei wird immer wieder gehashed

  • Problem: Datei oder Ordner wird immer und immer wieder neu eingelesen
  • Mögliche Ursachen:
    1. versteckte Sonderzeichen wie z.B. Gedankenstrich statt Bindestrich-
    2. Core wurde nicht richtig beendet
    3. fehlende Berechtigungen im Konfigurations-Ordner
  • Mögliche Lösung:
    1. Benenne die Datei bzw. den Ordner um und entferne zum Testen etwaige Sonderzeichen
    2. beende den Core über ein GUI oder mit exit
    3. der Benutzer, unter welchem der Core läuft, muss Schreibrechte für den Konfigurations-Ordner haben

14. kann ich den Core beim hashen beenden?

Ja, sofern der Core ordnungsgemäß mit exit bzw über ein GUI beendet wird.

Das Beenden des Core dauert dann jedoch bis zu 15 Minuten.

Der Core macht beim nächsten Start einfach dort weiter, wo er aufgehört hat.

15. Wo liegen die Konfigurationen?

Die Konfiguration (siehe Punkt 16) besteht aus .xml Dateien und liegt an folgendem Ort:

Windows C:\Benutzer\%USERNAME%\appleJuice\
Linux ~/appleJuice/ bzw. /home/$USER/appleJuice/
macOS ~/appleJuice/ bzw. /Users/$USER/appleJuice/
Docker im Container Volume /config/ im Unterordner appleJuice/

16. die Core Konfigurations-Dateien

folgende Core Konfigurations-Dateien befinden sich im Punkt 15 genannten Verzeichnis:

settings.xml Einstellungen wie TCP-Port, XML-Port, Up- und Download-Geschwindigkeit und mehr
shareinfo.xml Enthält die Pfade und konfigurierten Prioritäten der freigegebenen Dateien
shareidx.xml Enthält die Hashwerte (Prüfsummen) der Share-Dateien welche in der shareinfo.xml referenziert sind (kann mehrere GB groß werden!)
server.xml enthält die Liste der bekannten Server