IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

03113: end-of-file on communication channel


Sujet :

SQL Oracle

  1. #1
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut 03113: end-of-file on communication channel
    Bonjour à tous,

    Je voulais répondre à une question sur le forum mysql quand j'ai rencontré le bug ORA-03113: end-of-file on communication channel.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
     
    SQL> with t as (
    select 5 as counter, to_date('23/02/2011','dd/mm/yyyy') as time from dual union all
    select 6, to_date('23/02/2011','dd/mm/yyyy') from dual union all
    select 5, to_date('23/02/2011','dd/mm/yyyy') from dual union all
    select 12, to_date('23/02/2011','dd/mm/yyyy') from dual union all
    select 5, to_date('01/03/2011','dd/mm/yyyy') from dual union all
    select 36, to_date('01/03/2011','dd/mm/yyyy') from dual union all
    select 5, to_date('01/03/2011','dd/mm/yyyy') from dual union all
    select 5, to_date('01/03/2011','dd/mm/yyyy') from dual union all
    select 8, to_date('01/03/2011','dd/mm/yyyy') from dual
    )
    select *
      from t
      join (
            select counter, count(distinct time) as nb_time
              from t
             group by counter
            having count(distinct time) = 2
            ) t1
         on t.counter = t1.counter;  2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19   20  
    with t as (
    *
    ERROR at line 1:
    ORA-03113: end-of-file on communication channel
    Process ID: 3664
    Session ID: 140 Serial number: 101
    Si je crée la table pas de problème, si j'utilise WITH et seulement la sous requête pas de problème...

    Je suis sur 11.2.0.1.0, est ce que vous reproduisez ce bug ? même si vous faites le test sur une autre version ?
    Je sais que cette erreur veut dire contacter le support... mais comme c'est ma base perso de tests et que je n'ai pas d'accès à metalink :

    1/ Je voulais savoir si j'étais le seul à avoir le bug (j'ai eu quelques soucis d'OS ces derniers jours)
    2/ si le bug vous impacte aussi, est ce que quelqu'un pourrait se porter volontaire pour ouvrir un case ? (au moins le jeu de test est tout trouvé !)

    [edit] je suis sur Fedora14 qui n'est pas un OS certifié... donc vos tests m'intéressent vraiment.

  2. #2
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Même souci sous Windows en 11.2.0.1.

    Pas de problème sous Windows en 10.2.0.4.
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  3. #3
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Je confirme, même problème en 11.2.0.1 sur Windows Server 2003.
    Pas de soucis en 11.1.0.7 (toujours Windows Server 2003).

  4. #4
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Je pense que si la requête est ré-écrite comme ci dessous, elle va passer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    WITH t AS (
      SELECT 5 AS counter, to_date('23/02/2011','dd/mm/yyyy') AS time FROM dual union ALL
      SELECT 6, to_date('23/02/2011','dd/mm/yyyy') FROM dual union ALL
      SELECT 5, to_date('23/02/2011','dd/mm/yyyy') FROM dual union ALL
      SELECT 12, to_date('23/02/2011','dd/mm/yyyy') FROM dual union ALL
      SELECT 5, to_date('01/03/2011','dd/mm/yyyy') FROM dual union ALL
      SELECT 36, to_date('01/03/2011','dd/mm/yyyy') FROM dual union ALL
      SELECT 5, to_date('01/03/2011','dd/mm/yyyy') FROM dual union ALL
      SELECT 5, to_date('01/03/2011','dd/mm/yyyy') FROM dual union ALL
      SELECT 8, to_date('01/03/2011','dd/mm/yyyy') FROM dual
    ),
    t1 As (
            SELECT counter, count(DISTINCT time) AS nb_time
              FROM t
             GROUP BY counter
            HAVING count(DISTINCT time) = 2
    ) 
    SELECT *
      FROM t 
           JOIN 
           t1
        ON t.counter = t1.counter

  5. #5
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Citation Envoyé par mnitu Voir le message
    Je pense que si la requête est ré-écrite comme ci dessous, elle va passer
    Perdu !
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Non plus !
    C'est vraiment étrange comme bug...

  7. #7
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Je me disais que l'assistant de réparation SQL pourrait être utile, eh bien chou blanc !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    set long 5000
    set serveroutput on
     
    declare
    	id_tache	varchar2(50);
    	resu		clob;
    begin
    	-- suppression de la tâche 'plantage'
    	dbms_sqldiag.drop_diagnosis_task('plantage');
     
    	-- création de la tâche d'analyse
    	id_tache:=dbms_sqldiag.create_diagnosis_task
    		(sql_text => Q'!WITH t AS (
    		SELECT 5 AS counter, to_date('23/02/2011','dd/mm/yyyy') AS time FROM dual union ALL
    		SELECT 6, to_date('23/02/2011','dd/mm/yyyy') FROM dual union ALL
    		SELECT 5, to_date('23/02/2011','dd/mm/yyyy') FROM dual union ALL
    		SELECT 12, to_date('23/02/2011','dd/mm/yyyy') FROM dual union ALL
    		SELECT 5, to_date('01/03/2011','dd/mm/yyyy') FROM dual union ALL
    		SELECT 36, to_date('01/03/2011','dd/mm/yyyy') FROM dual union ALL
    		SELECT 5, to_date('01/03/2011','dd/mm/yyyy') FROM dual union ALL
    		SELECT 5, to_date('01/03/2011','dd/mm/yyyy') FROM dual union ALL
    		SELECT 8, to_date('01/03/2011','dd/mm/yyyy') FROM dual
    		)
    		SELECT *
    		FROM t
    		JOIN (
    			SELECT counter, count(DISTINCT time) AS nb_time
    			FROM t
    			GROUP BY counter
    			HAVING count(DISTINCT time) = 2
    			) t1
    			ON t.counter = t1.counter!', 
    	task_name => 'plantage', 
    	problem_type => dbms_sqldiag.problem_type_execution_error
    	 );	
     
    	-- activation de l'analyse la plus complète
    	dbms_sqldiag.set_diagnosis_task_parameter(id_tache, '_SQLDIAG_FINDING_MODE', dbms_sqldiag.SQLDIAG_FINDINGS_ALL);
     
    	-- exécution de l'analyse
    	dbms_sqldiag.execute_diagnosis_task('plantage');	
     
    	-- affichage du résultat
    	resu:=dbms_sqldiag.report_diagnosis_task('plantage', dbms_sqldiag.type_text);
    	dbms_output.put_line(resu);
     
    end;
    /
    --> No SQL patch was found to resolve the problem.
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  8. #8
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Merci pour vos retours, j'avais essayé la syntaxe t1 dans le WITH et aussi sans l'écriture ANSI.
    Par contre je n'ai pas essayé avec un hint materialized.

    Ca fait bizarre quand même de tomber sur un bug avec une requête aussi bidon.

  9. #9
    Membre expérimenté Avatar de ojo77
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2010
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 680
    Points : 1 597
    Points
    1 597
    Par défaut
    Y a-t-il quelquechose dans l'alert.log ?

  10. #10
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par Pomalaix Voir le message
    Perdu !
    On ne peut pas gagner à tous les coups…
    [Edit]
    Je regarderais ce soir.
    [/EDIT]

  11. #11
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    C'est "marrant" sans le distinct ça ne bug pas... par contre materialize n'a rien changé.

    Ojo77 dans /u01/app/oracle/diag/rdbms/db11gr2/DB11GR2/trace/alert_DB11GR2.log (je met le chemin complet au cas où ce ne soit pas le bon fichier...) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Thu Mar 03 20:04:56 2011
    Exception [type: SIGSEGV, Address not mapped to object] [ADDR:0x118] [PC:0x1CE6BDB, kkqfppDrv1()+101] [flags: 0x0, count: 1]
    Errors in file /u01/app/oracle/diag/rdbms/db11gr2/DB11GR2/trace/DB11GR2_ora_2801.trc  (incident=32636):
    ORA-07445: exception encountered: core dump [kkqfppDrv1()+101] [SIGSEGV] [ADDR:0x118] [PC:0x1CE6BDB] [Address not mapped to object] []
    Thu Mar 03 20:04:59 2011
    Sweep [inc][32636]: completed
    et dans DB11GR2_ora_2801.trc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Trace file /u01/app/oracle/diag/rdbms/db11gr2/DB11GR2/trace/DB11GR2_ora_2801.trc
    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1
    System name:	Linux
    Node name:	portable
    Release:	2.6.35.11-83.fc14.x86_64
    Version:	#1 SMP Mon Feb 7 07:06:44 UTC 2011
    Machine:	x86_64
    Instance name: DB11GR2
    Redo thread mounted by this instance: 1
    Oracle process number: 27
    Unix process pid: 2801, image: oracle@portable (TNS V1-V3)
     
     
    *** 2011-03-03 20:04:56.938
    *** SESSION ID:(136.46) 2011-03-03 20:04:56.938
    *** CLIENT ID:() 2011-03-03 20:04:56.938
    *** SERVICE NAME:(SYS$USERS) 2011-03-03 20:04:56.938
    *** MODULE NAME:(SQL*Plus) 2011-03-03 20:04:56.938
    *** ACTION NAME:() 2011-03-03 20:04:56.938
     
    Exception [type: SIGSEGV, Address not mapped to object] [ADDR:0x118] [PC:0x1CE6BDB, kkqfppDrv1()+101] [flags: 0x0, count: 1]
     
    *** 2011-03-03 20:04:57.074
    DDE: Problem Key 'ORA 7445 [kkqfppDrv1()+101]' was flood controlled (0x2) (incident: 32636)
    ORA-07445: exception encountered: core dump [kkqfppDrv1()+101] [SIGSEGV] [ADDR:0x118] [PC:0x1CE6BDB] [Address not mapped to object] []
    ssexhd: crashing the process...
    Shadow_Core_Dump = PARTIAL

  12. #12
    Membre expérimenté Avatar de ojo77
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2010
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 680
    Points : 1 597
    Points
    1 597
    Par défaut
    C'est un bug : Bug 9002336 - Dump in kkqfppDrv1 with DISTINCT & WITH clause

    Le contournement est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _optimizer_distinct_agg_transform = false
    Sinon il faut télécharger le patch sur My Oracle Support

  13. #13
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Il se casse la gueule pendant le parsing plus précisément dans la transformation de la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    mni@DIANA> WITH t AS (
      2  SELECT 5 AS counter, to_date('23/02/2011','dd/mm/yyyy') AS time FROM dual u
    nion ALL
      3  SELECT 6, to_date('23/02/2011','dd/mm/yyyy') FROM dual union ALL
      4  SELECT 5, to_date('23/02/2011','dd/mm/yyyy') FROM dual union ALL
      5  SELECT 12, to_date('23/02/2011','dd/mm/yyyy') FROM dual union ALL
      6  SELECT 5, to_date('01/03/2011','dd/mm/yyyy') FROM dual union ALL
      7  SELECT 36, to_date('01/03/2011','dd/mm/yyyy') FROM dual union ALL
      8  SELECT 5, to_date('01/03/2011','dd/mm/yyyy') FROM dual union ALL
      9  SELECT 5, to_date('01/03/2011','dd/mm/yyyy') FROM dual union ALL
     10  SELECT 8, to_date('01/03/2011','dd/mm/yyyy') FROM dual
     11  )
     12  SELECT *
     13    FROM t
     14    JOIN (
     15          SELECT --+NO_QUERY_TRANSFORMATION
     16             counter, count(DISTINCT time) AS nb_time
     17            FROM t
     18           GROUP BY counter
     19          HAVING count(DISTINCT time) = 2
     20          ) t1
     21       ON t.counter = t1.counter;
     
       COUNTER TIME        COUNTER    NB_TIME
    ---------- -------- ---------- ----------
             5 23/02/11          5          2
             5 23/02/11          5          2
             5 01/03/11          5          2
             5 01/03/11          5          2
             5 01/03/11          5          2

  14. #14
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Ah il y a un patch, c'est bien, ce qui est étonnant compte tenu du titre du bug c'est que la sous-requête seule avec le DISTINCT et le WITH fonctionne bien.

    Merci à tous pour vos tests et plus particulièrement à ojo et mnitu pour les contournements
    Il se casse la gueule pendant le parsing plus précisément dans la transformation de la requête
    Mnitu, comment le détermines tu et comment as tu trouvé ce hint, est ce un autre contournement fourni par le support ?

  15. #15
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par skuatamad Voir le message
    ...
    Mnitu, comment le détermines tu et comment as tu trouvé ce hint, est ce un autre contournement fourni par le support ?
    Salut Skuatamad,

    Non, je n’ai pas de support chez moi .
    Mais, si tu trace l’événement 10053, le parsing de la requête, tu retrouveras dans le fichier de trace l’anomalie. Ensuite, en analysant les autres informations situées juste en dessus de l’anomalie on peut comprendre le chemin d’analyse qu’il a pris. Après c’est relativement simple : il reste à trouver le hint qui force un autre chemin ; un hint SQL étant en fait une restriction imposé à l’optimiseur dans l’espace des chemins possibles.

  16. #16
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Salut Mnitu,

    Analyse de la trace 10053, classe !
    Je regarderai la trace mais je ne me fais pas d'illusion sur ma capacité à l'analiser, mais ce sera un bon entrainement.
    Merci d'avoir précisé ton process d'analyse.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Oracle 8]Erreur ORA-03113: end-of-file on communication channel
    Par RonanSUNmode dans le forum Connexions aux bases de données
    Réponses: 4
    Dernier message: 20/11/2008, 10h08
  2. ORA-03113: end-of-file on communication channel
    Par Sabact dans le forum Administration
    Réponses: 6
    Dernier message: 03/10/2008, 17h14
  3. Erreur ORA-03113: end-of-file on communication channel
    Par smooncef dans le forum Installation
    Réponses: 13
    Dernier message: 02/04/2008, 10h31
  4. [ORA-03113] end-of-file on communication channel
    Par Mella dans le forum Oracle
    Réponses: 16
    Dernier message: 10/02/2006, 01h18
  5. Réponses: 14
    Dernier message: 10/11/2005, 17h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo