News

Réparations de PCB de bornes d'arcade

Électronique | Aucun commentaire
Je suis récemment tombé sur une vidéo de BackInToysTV (suggérée par Youtube) concernant la restauration de bornes d'arcade.
Même si ce n'est pas mon trip je trouve cela intéressant à regarder. Du moins pour la partie électronique.



Je vous invite à aller voir le blog de Sébastien (rep-arcade.com) qui maîtrise très bien son sujet où il détaille comment il a déduit telle panne, telle cause et comment il répare, c'est super agréable à suivre. Il existe aussi des chaînes YT en anglais notamment celle de OneCircuit, des vielles vidéos très intéressantes qui expliquent la méthodologie à suivre avec les portes logiques CMOS, TTL, ECL, détecter les portes bloquées à l'état haut ou bas ou en floating. Des puces qui peuvent bloquer des lignes d'adresses ou de données, des interruptions sur le CPU (IRQ/NMI), déclencher en boucle des watchdog (Reset infini), etc...

Mais je retiens quand même que sans les schémas c'est hard, d'autant qu'un certain Fluke 9010A (et ses modules CPU) est visiblement bien apprécié pour détecter rapidement et facilement certaines pannes logiques (CPU, RAM, ROM). Du matos spécial à avoir donc pour ceux qui se lancent là dedans. En plus des ROMs et des schémas.

En amateur pour débuter on peut s'équiper déjà d'une sonde logique. J'en ai acheté une récemment sur eBay de qualité correcte : la RadioSpares (ISO-TECH) 537-5179. On trouve aussi des analyseurs logiques pour pas cher sur Internet.

Deadlock

Informatique | Aucun commentaire
Un interblocage (ou étreinte fatale, deadlock en anglais) est un phénomène qui peut survenir en programmation concurrente. L'interblocage se produit lorsque deux processus concurrents s'attendent mutuellement.

Dans la vie :



Dans les logs :


Code TEXT :
 
2018-09-24 02:06:50,947 [pool-1192-thread-9    ] WARN  org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: 40P01 
2018-09-24 02:06:50,949 [pool-1192-thread-9    ] ERROR org.hibernate.util.JDBCExceptionReporter - ERROR: deadlock detected 
  Détail : Process 29732 waits for ShareLock on transaction 118224841; blocked by process 8982. 
Process 8982 waits for ShareLock on transaction 118224832; blocked by process 1781. 
Process 1781 waits for ShareLock on transaction 118224839; blocked by process 29732. 
  Indice : See server log for query details. 
        at java.lang.Thread.run(Thread.java:724) 
Caused by: java.util.concurrent.ExecutionException: org.hibernate.exception.GenericJDBCException: could not execute update query 
        at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:252) 
        at java.util.concurrent.FutureTask.get(FutureTask.java:111) 
        ... 13 more 
Caused by: org.hibernate.exception.GenericJDBCException: could not execute update query 
        at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:140) 
        at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:128) 
        at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) 
        at org.hibernate.hql.ast.exec.BasicExecutor.execute(BasicExecutor.java:110) 
        at org.hibernate.hql.ast.QueryTranslatorImpl.executeUpdate(QueryTranslatorImpl.java:421) 
        at org.hibernate.engine.query.HQLQueryPlan.performExecuteUpdate(HQLQueryPlan.java:283) 
        at org.hibernate.impl.SessionImpl.executeUpdate(SessionImpl.java:1278) 
        at org.hibernate.impl.QueryImpl.executeUpdate(QueryImpl.java:117) 
        ... 5 more 
Caused by: org.postgresql.util.PSQLException: ERROR: deadlock detected 
  Détail : Process 29732 waits for ShareLock on transaction 118224841; blocked by process 8982. 
Process 8982 waits for ShareLock on transaction 118224832; blocked by process 1781.[/size] 
 


Un batch de plus KO à cause d'un deadlock...