psycopg2.DatabaseError: SSL error: sslv3 alert unexpected message

Issue #8 resolved
Paolo Dina created an issue

Hi, any clue to fix the exception I encountered importing mbdump.tar.bz2 with Postgres 9.1.14?

Other dumps (like mbdump-cdstubs.tar.bz2) get imported as expected, but not this one.

#!

$ ./mbslave-import.py mbdump.tar.bz2 
Importing data from mbdump.tar.bz2
 - Loading area to musicbrainz.area
 - Loading area_type to musicbrainz.area_type
 - Loading area_alias to musicbrainz.area_alias
 - Loading country_area to musicbrainz.country_area
 - Loading area_alias_type to musicbrainz.area_alias_type
 - Loading area_gid_redirect to musicbrainz.area_gid_redirect
 - Loading iso_3166_1 to musicbrainz.iso_3166_1
 - Loading iso_3166_2 to musicbrainz.iso_3166_2
 - Loading iso_3166_3 to musicbrainz.iso_3166_3
 - Loading artist to musicbrainz.artist
 - Loading artist_alias to musicbrainz.artist_alias
 - Loading artist_alias_type to musicbrainz.artist_alias_type
 - Loading artist_credit to musicbrainz.artist_credit
 - Loading artist_credit_name to musicbrainz.artist_credit_name
 - Loading artist_gid_redirect to musicbrainz.artist_gid_redirect
 - Loading artist_ipi to musicbrainz.artist_ipi
 - Loading artist_isni to musicbrainz.artist_isni
 - Loading artist_type to musicbrainz.artist_type
 - Loading cdtoc to musicbrainz.cdtoc
 - Loading editor_collection_type to musicbrainz.editor_collection_type
 - Loading event to musicbrainz.event
 - Loading event_alias to musicbrainz.event_alias
 - Loading event_alias_type to musicbrainz.event_alias_type
 - Loading event_gid_redirect to musicbrainz.event_gid_redirect
 - Loading event_type to musicbrainz.event_type
 - Loading gender to musicbrainz.gender
 - Loading instrument to musicbrainz.instrument
 - Loading instrument_alias to musicbrainz.instrument_alias
 - Loading instrument_alias_type to musicbrainz.instrument_alias_type
 - Loading instrument_annotation to musicbrainz.instrument_annotation
 - Loading instrument_gid_redirect to musicbrainz.instrument_gid_redirect
 - Loading instrument_type to musicbrainz.instrument_type
 - Loading isrc to musicbrainz.isrc
 - Loading iswc to musicbrainz.iswc
 - Loading l_area_area to musicbrainz.l_area_area
 - Loading l_area_artist to musicbrainz.l_area_artist
 - Loading l_area_event to musicbrainz.l_area_event
 - Loading l_area_instrument to musicbrainz.l_area_instrument
 - Loading l_area_label to musicbrainz.l_area_label
 - Loading l_area_place to musicbrainz.l_area_place
 - Loading l_area_recording to musicbrainz.l_area_recording
 - Loading l_area_release to musicbrainz.l_area_release
 - Loading l_area_release_group to musicbrainz.l_area_release_group
 - Loading l_area_series to musicbrainz.l_area_series
 - Loading l_area_url to musicbrainz.l_area_url
 - Loading l_area_work to musicbrainz.l_area_work
 - Loading l_artist_artist to musicbrainz.l_artist_artist
 - Loading l_artist_event to musicbrainz.l_artist_event
 - Loading l_artist_instrument to musicbrainz.l_artist_instrument
 - Loading l_artist_label to musicbrainz.l_artist_label
 - Loading l_artist_place to musicbrainz.l_artist_place
 - Loading l_artist_recording to musicbrainz.l_artist_recording
 - Loading l_artist_release to musicbrainz.l_artist_release
 - Loading l_artist_release_group to musicbrainz.l_artist_release_group
 - Loading l_artist_series to musicbrainz.l_artist_series
 - Loading l_artist_url to musicbrainz.l_artist_url
 - Loading l_artist_work to musicbrainz.l_artist_work
 - Loading l_event_event to musicbrainz.l_event_event
 - Loading l_event_instrument to musicbrainz.l_event_instrument
 - Loading l_event_label to musicbrainz.l_event_label
 - Loading l_event_place to musicbrainz.l_event_place
 - Loading l_event_recording to musicbrainz.l_event_recording
 - Loading l_event_release to musicbrainz.l_event_release
 - Loading l_event_release_group to musicbrainz.l_event_release_group
 - Loading l_event_series to musicbrainz.l_event_series
 - Loading l_event_url to musicbrainz.l_event_url
 - Loading l_event_work to musicbrainz.l_event_work
 - Loading l_instrument_instrument to musicbrainz.l_instrument_instrument
 - Loading l_instrument_label to musicbrainz.l_instrument_label
 - Loading l_instrument_place to musicbrainz.l_instrument_place
 - Loading l_instrument_recording to musicbrainz.l_instrument_recording
 - Loading l_instrument_release to musicbrainz.l_instrument_release
 - Loading l_instrument_release_group to musicbrainz.l_instrument_release_group
 - Loading l_instrument_series to musicbrainz.l_instrument_series
 - Loading l_instrument_url to musicbrainz.l_instrument_url
 - Loading l_instrument_work to musicbrainz.l_instrument_work
 - Loading l_label_label to musicbrainz.l_label_label
 - Loading l_label_place to musicbrainz.l_label_place
 - Loading l_label_recording to musicbrainz.l_label_recording
 - Loading l_label_release to musicbrainz.l_label_release
 - Loading l_label_release_group to musicbrainz.l_label_release_group
 - Loading l_label_series to musicbrainz.l_label_series
 - Loading l_label_url to musicbrainz.l_label_url
 - Loading l_label_work to musicbrainz.l_label_work
 - Loading l_place_place to musicbrainz.l_place_place
 - Loading l_place_recording to musicbrainz.l_place_recording
 - Loading l_place_release to musicbrainz.l_place_release
 - Loading l_place_release_group to musicbrainz.l_place_release_group
 - Loading l_place_series to musicbrainz.l_place_series
 - Loading l_place_url to musicbrainz.l_place_url
 - Loading l_place_work to musicbrainz.l_place_work
 - Loading l_recording_recording to musicbrainz.l_recording_recording
 - Loading l_recording_release to musicbrainz.l_recording_release
 - Loading l_recording_release_group to musicbrainz.l_recording_release_group
 - Loading l_recording_series to musicbrainz.l_recording_series
 - Loading l_recording_url to musicbrainz.l_recording_url
 - Loading l_recording_work to musicbrainz.l_recording_work
 - Loading l_release_group_release_group to musicbrainz.l_release_group_release_group
 - Loading l_release_group_series to musicbrainz.l_release_group_series
 - Loading l_release_group_url to musicbrainz.l_release_group_url
 - Loading l_release_group_work to musicbrainz.l_release_group_work
 - Loading l_release_release to musicbrainz.l_release_release
 - Loading l_release_release_group to musicbrainz.l_release_release_group
 - Loading l_release_series to musicbrainz.l_release_series
 - Loading l_release_url to musicbrainz.l_release_url
 - Loading l_release_work to musicbrainz.l_release_work
 - Loading l_series_series to musicbrainz.l_series_series
 - Loading l_series_url to musicbrainz.l_series_url
 - Loading l_series_work to musicbrainz.l_series_work
 - Loading l_url_url to musicbrainz.l_url_url
 - Loading l_url_work to musicbrainz.l_url_work
 - Loading l_work_work to musicbrainz.l_work_work
 - Loading label to musicbrainz.label
 - Loading label_alias to musicbrainz.label_alias
 - Loading label_alias_type to musicbrainz.label_alias_type
 - Loading label_gid_redirect to musicbrainz.label_gid_redirect
 - Loading label_ipi to musicbrainz.label_ipi
 - Loading label_isni to musicbrainz.label_isni
 - Loading label_type to musicbrainz.label_type
 - Loading language to musicbrainz.language
 - Loading link to musicbrainz.link
 - Loading link_attribute to musicbrainz.link_attribute
 - Loading link_attribute_credit to musicbrainz.link_attribute_credit
 - Loading link_attribute_text_value to musicbrainz.link_attribute_text_value
 - Loading link_attribute_type to musicbrainz.link_attribute_type
 - Loading link_creditable_attribute_type to musicbrainz.link_creditable_attribute_type
 - Loading link_text_attribute_type to musicbrainz.link_text_attribute_type
 - Loading link_type to musicbrainz.link_type
 - Loading link_type_attribute_type to musicbrainz.link_type_attribute_type
 - Loading medium to musicbrainz.medium
 - Loading medium_cdtoc to musicbrainz.medium_cdtoc
 - Loading medium_format to musicbrainz.medium_format
 - Loading orderable_link_type to musicbrainz.orderable_link_type
 - Loading place to musicbrainz.place
 - Loading place_alias to musicbrainz.place_alias
 - Loading place_alias_type to musicbrainz.place_alias_type
 - Loading place_gid_redirect to musicbrainz.place_gid_redirect
 - Loading place_type to musicbrainz.place_type
 - Loading recording to musicbrainz.recording
Traceback (most recent call last):
  File "./mbslave-import.py", line 39, in <module>
    load_tar(filename, db, config, ignored_tables)
  File "./mbslave-import.py", line 30, in load_tar
    cursor.copy_from(tar.extractfile(member), fulltable)
psycopg2.DatabaseError: SSL error: sslv3 alert unexpected message

Comments (6)

  1. Lukáš Lalinský repo owner

    This was a problem with corrupted data dump (not fully copied). It should have been resolved now if you re-download it.

  2. Paolo Dina reporter

    It worked, thank you!

    I still had to increase the PostgreSQL timeout to avoid keep getting the following psycopg2 exception.

    Traceback (most recent call last):
      File "./mbslave-import.py", line 39, in <module>
        load_tar(filename, db, config, ignored_tables)
      File "./mbslave-import.py", line 30, in load_tar
        cursor.copy_from(tar.extractfile(member), fulltable)
    psycopg2.extensions.QueryCanceledError: canceling statement due to statement timeout
    CONTEXT:  COPY recording, line 2473566: "11883325   b3ebc3c7-814d-4cdf-81f9-95556548ddd3    Unchained Melody    15072   216000      0   \N  f"
    
  3. Paolo Dina reporter

    I had to change the code this way, otherwise no chances to import into my postgres.

    def connect_db(cfg, set_search_path=False):
        args = cfg.make_psql_args()
        args.update({'options': '-c statement_timeout=1000000'})
        db = psycopg2.connect(**args)
    
  4. Lukáš Lalinský repo owner

    I think that having a system level statement timeout is the wrong way to set up PostgreSQL. There are many administrative tasks that will take some time. These kind of timeouts should be only set on the application level when expecting some questions can take unreasonable amount of time and need to be stopped. But that's just my opinion.

  5. Log in to comment