Author Topic: Foutmelding: Index out of range (& vastloper RDJ)  (Read 329 times)

Kilrock

  • Jr. Member

  • Offline
  • **
  • 60
Foutmelding: Index out of range (& vastloper RDJ)
« on: June 14, 2019, 09:53:29 AM »
RDJ versie 2.00.6
Windows 7, 64 bit
.Netversie 4.7

Historie:
Database overgezet naar een andere PC. Installatie gelijk aan de PC waar hij vandaan kwam.
Vanochtend -aan de tijd te zien- struikelt RDJ zo te zien over een evenent: het laden van de uurwissel.

Vanaf dat moment wordt elke seconde onderstaande foutmelding in het log geschreven.
Een uur of wat later loopt Radio DJ, daarna zelfs heel Windows 7 vast.

Onderstaand de eerste foutmelding in 't log. Alle andere foutmeldingen zijn exact dezelfde, alleen één seconde later toegevoegd. Vanaf de eerste foutmelding (07:59:47) is het drie kwartier zo doorgegaan. De laatste log entry staat op 08:45:29.

Gisterenavond zag ik al iets vreemds: in de categorie jingles stond in de trackmanager in de kolom 'enabled' alles op -1. Dat zou alleen 0 of 1 mogen zijn, denk ik dan. Als we naar de eerste regel van onderstaande logkopie kijken, dan vrees ik dat we hier (weer!) met een ernstig databaseprobleem te maken hebben.


14 Jun 2019 07:59:47
Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index   at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
   at rdjInterface.Playlist.GeneratePlaylistFromRotation(List`1 rotation, Int32 NumberOfTracks, Double TotalDuration, Boolean FromStart)
   at RadioDJ.MainForm.Timer_Watchdog_Tick(Object sender, EventArgs e)
   at System.Windows.Forms.Timer.OnTick(EventArgs e)
   at System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Wat zou hier gebeurd kunnen zijn.
En dan natuurlijk de beste vraag die je je maar kunt voorstellen:
Hoe lossen we 't op? (elke avond om tien uur wordt een database backup gemaakt. Daar heb ik er minstens 15 van, dus dat gras is al voor je voeten weg :D)

MS
First explore, than think, do, screw up & ask for help...

stevewa

  • Hero Member

  • Offline
  • *****
  • 552
Re: Foutmelding: Index out of range (& vastloper RDJ)
« Reply #1 on: June 14, 2019, 01:49:48 PM »
enable -1 means that file was not found. something happened which made rdj think the files was moved.

if it can't find files, then it can't build playlists from rotations, and it will throw that error


check if the files DO exist on disk, then change ENABLED to 1
and see if that fixes it

FreerunMedia

  • Hero Member

  • Offline
  • *****
  • 820
  • Personal Text
    Proud user of RadioDJ
    • Radio 251 , Gewoon gezellig
Re: Foutmelding: Index out of range (& vastloper RDJ)
« Reply #2 on: June 14, 2019, 07:11:18 PM »
Wat heel veel mensen doen en vergeten is een USB schijf aansluiten waar de muziek op staat. Niet erg maar je moet de energie modus wel op "high" zetten. Alles uitschakelen wat de computer kan uitschakelen dus monitor altijd aan, harde schijven altijd aan en natuurlijk ook de USB schijven altijd aan.
Running 3 editions V1.8.2 at www.salto.nl and v1.8.2 at radio251.nl. ( NOW with 2 live studio's! )

Kilrock

  • Jr. Member

  • Offline
  • **
  • 60
Re: Foutmelding: Index out of range (& vastloper RDJ)
« Reply #3 on: June 15, 2019, 07:31:55 PM »
De USB disk is aangesloten. Zoals beschreven: op beide PC's is die schijf E:\. Op het moment dat Radio DJ op de vervangende PC werd opgestart, is via verify tracks gespeurd naar ontbrekend materiaal. Alle entries werden herkend, dus de verwijzingen vanuit de database naar die bestanden waren correct.

Dat maakt het voorval vreemd. De twee PC's zijn van hetzelfde model, hetzelfde subtype, dezelfde configuratie. Aan het checken van database/locatie van de bestanden wordt altijd gedacht. Ik werk voor regionale omroepen. Dalet werkt volgens dezelfde methode: SQL-database, waarin alle bestandsinformatie, metadata en instructies voor het uitspelen.

Ik heb daar héél goed geleerd om op te letten dat ze zaak niet onderuit ging; dus 'thuis' bij Kilrock ben ik met het maken van backups, checken van configs e.d. ook goed op m'n qui vive.

.NET-versie gelijk, Windows 7 versie gelijk, MariaDB-versie gelijk, hardware config gelijk aan de PC waar RDJ vanaf kwam (die moest down i.v.m. onderhoud). Nou... zet je tanden er maar in. :-*
First explore, than think, do, screw up & ask for help...


Kilrock

  • Jr. Member

  • Offline
  • **
  • 60
Re: Foutmelding: Index out of range (& vastloper RDJ)
« Reply #5 on: June 22, 2019, 03:08:59 AM »
Het ligt niet aan de bekende USB bug in Windows. Aanvoer van data is OK.
Ik merk dat nu ook titels die absoluut niet zijn aangezet alsnog door RDJ worden uitgespeeld. Dat lijkt me toch een probleem met de database, die tot voor de migratie prima werkte. Enfin: tot zover dank voor de medewerking. Ik ga verder zoeken naar wat dit kan zijn.
First explore, than think, do, screw up & ask for help...

FreerunMedia

  • Hero Member

  • Offline
  • *****
  • 820
  • Personal Text
    Proud user of RadioDJ
    • Radio 251 , Gewoon gezellig
Re: Foutmelding: Index out of range (& vastloper RDJ)
« Reply #6 on: June 22, 2019, 03:23:14 PM »
Het ligt niet aan de bekende USB bug in Windows. Aanvoer van data is OK.
Ik merk dat nu ook titels die absoluut niet zijn aangezet alsnog door RDJ worden uitgespeeld. Dat lijkt me toch een probleem met de database, die tot voor de migratie prima werkte. Enfin: tot zover dank voor de medewerking. Ik ga verder zoeken naar wat dit kan zijn.
Welke DBase gebruik je? MySQL heeft nogal wat issues en ik kwam daarachter toen ik van mijn XP naar W7 ging. MySQL slokte een berg geheugen op en alles was bagger traag. Ik heb toen MariaDB geinstalleerd en sinds dien geen enkel probleem. Misschien is dat een optie?
Running 3 editions V1.8.2 at www.salto.nl and v1.8.2 at radio251.nl. ( NOW with 2 live studio's! )

Kilrock

  • Jr. Member

  • Offline
  • **
  • 60
Re: Foutmelding: Index out of range (& vastloper RDJ)
« Reply #7 on: August 23, 2019, 12:20:15 AM »
Database loopt hier op MariaDB. Het was mij eerder ook al opgevallen dat MySQL niet altijd even betrouwbaar is. Een eerdere versie van onze database werd overgezet van MySQL naar MariaDB. Dat leverde vreemde problemen op. Database vervolgens op MariaDB van scratch af aan opgebouwd. (15k+ aan muziektitels...) en een paar weken stabiel gedraaid.

Op 19 augustus j.l. weer hoogst merkwaardige verschijnselen:

uurwisseling nieuws/uuropener werkte goed, is ineens verdwenen

Eens in de zoveel tijd voer ik een repair uit met Heidi SQL. Procedure exact zoals door Marius beschreven. Dan zou je zeggen: dat werkt. Niet dus. ik merkte dat een heel rijtje titels niet meer in de catalogus voorkwam. Op die repair-actie kom ik straks nog even terug.

Lichtelijk tandenknarsend de muziekdirectory gescand om te zien wat RDJ nu eigenlijk kwijt is. Dat bleken titels te zijn die nog redelijk recent ingevoerd waren. Dat is een hint: blijkbaar ging het mis met de database nog voordat ik die nieuwe titels invoerde of ging het juist mis doordat titels werden ingevoerd. Dat laatste betwijfel ik een beetje. Het zou toch stabiel moeten werken, nietwaar? :-[

Om te checken of ergens onderweg titels uit de database wegvallen bedacht ik een simpel trucje:
categorie 'nieuw' aangemaakt
gehele muziekdirectory op harddisk scannen en het resultaat van die scan in de 'nieuw' categorie laten vallen

De scan op 19 augustus gaf het verbijsterend aantal van ruim 600 verloren titels als resultaat. Die verloren titels zien we niet, als ik RDJ met Utilities>Verify tracks laat scannen. Dat is logisch, want eerst was de database die titels duidelijk kwijt, later -na de volledige scan naar de 'nieuw' categorie- zaten die titels dus netjes gebrubriceerd weer in de database.

De vraag blijft waarom ik steeds data in het niets zie verdwijnen. Het gaat daarbij niet alleen om muziektitels, maar ook om jingles, nieuws en zelfs events. Met name dat laatste is een kwalijke zaak, want vanuit events zouden commercials opgestart moeten kunnen worden. We hebben nu (nog) geen adverteerders, maar het wordt natuurlijk gedonder als dat straks wel het geval zou zijn en RDJ functioneert niet goed.

Nu zoek ik ook buiten dit forum naar antwoorden. Voor degenen die een beetje extra kennis altijd handig vinden: Ik trof op radiodj.ro/community/index.php?topic=13412.msg75354;topicseen#new de volgende hint:

Okay well after long researches, I've finally found the reason.
It seems to appear with newer version of mySQL server that doesn't understand "admin@%" as an owner of the stored procedure "UpdateTracks".
Changing it to "admin@localhost" has solved the problem.
Hope it can help someone there :)


Dat deed bij mij een LED-lampje rinkelen. Als ik namelijk een repair uitvoer met Heidi SQL, dan krijg ik bij de tabel 'update tracks' de vautmelding 'Skipped - a procedure cannot maintained'. Heidi SQL krijgt blijkbaar dus geen toegang tot dat veldje. Dat zou de oorzaak van het database probleem kunnen zijn.

Dan loop ik tegen de grenzen van mijn kennis aan: de slimmerik die erachter kwam, dat "admin@%" als eigenaar van de vastgelegde procedure 'Update tracks' niet werkt (en dat met goede gevolgen wijzigde naar "admin@localhost") vertelt me er even niet bij waar en hoe ik zou kunnen controleren of daar misschien nog wat te halen valt.

Samengevat: ik zoek dus iemand die mij op dit forum met het opheffen van de blokkade op 'Update tracks' zou kunnen/willen helpen. Ik heb er een beetje haast mee, want het lijkt nu wel alsof mijn hele database degenereert. Da's niet tof, kan ik je vertellen :hihi:
First explore, than think, do, screw up & ask for help...

Calypso

  • Sr. Member

  • Offline
  • ****
  • 422
Re: Foutmelding: Index out of range (& vastloper RDJ)
« Reply #8 on: August 23, 2019, 02:30:36 PM »
Dan loop ik tegen de grenzen van mijn kennis aan: de slimmerik die erachter kwam, dat "admin@%" als eigenaar van de vastgelegde procedure 'Update tracks' niet werkt (en dat met goede gevolgen wijzigde naar "admin@localhost") vertelt me er even niet bij waar en hoe ik zou kunnen controleren of daar misschien nog wat te halen valt.

Samengevat: ik zoek dus iemand die mij op dit forum met het opheffen van de blokkade op 'Update tracks' zou kunnen/willen helpen. Ik heb er een beetje haast mee, want het lijkt nu wel alsof mijn hele database degenereert. Da's niet tof, kan ik je vertellen :hihi:

Dit specifieke: HeidiSQL, zoek naar de bewuste procedure (Update Tracks - deze is van belang tot versie 2zoveel (ergens in het begin), daarna wordt je UpdateTracks2 gebruikt). Klik die aan, en kijk naar het rechterdeel van het scherm. Daarin heb je nu een tabblad "Procedure UpdateTracks" (of UpdateTracks2). Daar staat (Ik heb engelse versie): "Definer" (dus degene die de procedure heeft aangemaakt), en daar staat je root@% of root@localhost.

Ik denk echter niet dat dit verband houdt met jouw probleem: het verdwijnen van tracks. UpdateTracks procedure is namelijk om de "date/track/etc" played info bij te houden. Wat zou kunnen is dat je database op 1 of andere manier corrupt raakt danwel geen data opslaat in de datafiles. Wordt de PC altijd goed afgesloten? Geen rare crashes? Database is in InnoDB gemaakt (dus niet ISAM wat nog weleens dataverlies wil veroorzaken - is te zien in HeidiSQL wanneer je op de database klikt, dan zie je rechts een lijst met de database engine per tabel)? Voldoende ruimte op de disk waar de database staat?