question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

read_json segfaults with Python 3.7

See original GitHub issue

Code Sample, a copy-pastable example if possible

Python 3.7.0 (default, Jun 28 2018, 13:15:42) 
[GCC 7.2.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas as pd
>>> pd.__version__
'0.23.4'
>>> pd.read_json(
...     '''{
...         "tsk_buy_sell": "Wie häufig kommt Einkaufen / Beschaffen / Verkaufen bei Ihrer Arbeit vor?",
...         "tsk_consult": "Wie häufig kommt Beraten / Informieren bei Ihrer Arbeit vor?",
...         "tsk_hospitality": "Wie häufig kommt Bewirten / Beherbergen / Speisenbereiten bei Ihrer Arbeit vor?",
...         "tsk_information_search": "Wie häufig kommt Informationen sammeln / Recherchieren / Dokumentieren bei Ihrer Arbeit vor?",
...         "tsk_law": "Gesetze auslegen, Vorschriften anwenden",
...         "tsk_marketing_pr": "Werben, Marketing oeffentlichkeitsarbeit, PR",
...         "tsk_operate": "Wie häufig kommt Überwachen / Steuern von Maschinen / Anlagen / techn. Prozessen bei Ihrer Arbeit vor?",
...         "tsk_organise": "Wie häufig kommt Organisieren / Planen und Vorbereiten von Arbeitsprozessen bei Ihrer Arbeit vor?",
...         "tsk_persuade": "Wie häufig müssen Sie andere überzeugen und Kompromisse aushandeln?",
...         "tsk_produce": "Wie häufig kommt Herstellen / Produzieren von Waren und Gütern bei Ihrer Arbeit vor?",
...         "tsk_quality_check": "Wie häufig kommt Messen / Prüfen / Qualitätskontrolle bei Ihrer Arbeit vor?",
...         "tsk_repair": "Wie häufig kommt Reparieren / Instandsetzen bei Ihrer Arbeit vor?",
...         "tsk_research_construct": "Wie häufig kommt Entwickeln / Forschen / Konstruieren bei Ihrer Arbeit vor?",
...         "tsk_supervision": "Haben Sie Mitarbeiter und Mitarbeiterinnen, für die Sie direkte Vorgesetzte sind?",
...         "tsk_teach": "Wie häufig kommt Ausbilden / Lehren / Unterrichten / Erziehen bei Ihrer Arbeit vor?",
...         "tsk_means_of_transportation": "Arbeit mit Transportmitteln"
...     }''',
...     typ='series',
...     orient='index'
... )
tsk_buy_sell                   Wie häufig kommt Einkaufen / Beschaffen / Verk...
tsk_consult                    Wie häufig kommt Beraten / Informieren bei Ihr...
tsk_hospitality                Wie häufig kommt Bewirten / Beherbergen / Spei...
tsk_information_search         Wie häufig kommt Informationen sammeln / Reche...
tsk_law                                  Gesetze auslegen, Vorschriften anwenden
tsk_marketing_pr                    Werben, Marketing oeffentlichkeitsarbeit, PR
tsk_operate                    Wie häufig kommt Überwachen / Steuern von Masc...
tsk_organise                   Wie häufig kommt Organisieren / Planen und Vor...
tsk_persuade                   Wie häufig müssen Sie andere überzeugen und Ko...
tsk_produce                    Wie häufig kommt Herstellen / Produzieren von ...
tsk_quality_check              Wie häufig kommt Messen / Prüfen / Qualitätsko...
tsk_repair                     Wie häufig kommt Reparieren / Instandsetzen be...
tsk_research_construct         Wie häufig kommt Entwickeln / Forschen / Konst...
tsk_supervision                Haben Sie Mitarbeiter und Mitarbeiterinnen, fü...
tsk_teach                      Wie häufig kommt Ausbilden / Lehren / Unterric...
tsk_means_of_transportation                          Arbeit mit Transportmitteln
dtype: object
>>> 
Segmentation fault (core dumped)

Expected Output

Same thing, without the segfault. Everything works fine in a Python 3.6 conda environment.

Also noted by @bsolomon1124 in #11344

Output of pd.show_versions()

commit: None python: 3.6.6.final.0 python-bits: 64 OS: Linux OS-release: 4.13.0-46-generic machine: x86_64 processor: x86_64 byteorder: little LC_ALL: None LANG: en_US.UTF-8 LOCALE: en_US.UTF-8

pandas: 0.23.4 pytest: None pip: 10.0.1 setuptools: 40.2.0 Cython: None numpy: 1.15.1 scipy: None pyarrow: None xarray: None IPython: 6.5.0 sphinx: 1.7.9 patsy: None dateutil: 2.7.3 pytz: 2018.5 blosc: None bottleneck: None tables: None numexpr: None feather: None matplotlib: None openpyxl: None xlrd: None xlwt: None xlsxwriter: None lxml: None bs4: None html5lib: 1.0.1 sqlalchemy: None pymysql: None psycopg2: None jinja2: 2.10 s3fs: None fastparquet: None pandas_gbq: None pandas_datareader: None

Issue Analytics

  • State:closed
  • Created 5 years ago
  • Reactions:1
  • Comments:5 (4 by maintainers)

github_iconTop GitHub Comments

7reactions
troelscommented, Sep 27, 2018

This is in fact a cpython 3.7.0 bug in float() and will be fixed in python 3.7.1, which will be released in a week or two:

https://bugs.python.org/issue34087

1reaction
troelscommented, Sep 25, 2018

Hi @hmgaudecker

I can replicate this, but the problem doesn’t seem to be in the json-module. The following small program coredumps for me:

import pandas as pd

s = pd.Series(['Wie häufig kommt Beraten / Informieren bei Ihrer Arbeit vor?'], dtype='object')
s.astype('float64')

Small variations make it stop crashing. I believe something is writing to a stray pointer, perhaps inside of numpy. Likely somehow related to the ä-character, but I can’t quite pinpoint how.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Trying to read JSON file within a Python package
The data.json file comprises cached data that is read in script.py . I have figured out how to include data files (use of...
Read more >
Issue 34688: Segfault in pandas that works fine on 3.7
msg325392 ‑ (view) Author: Karthikeyan Singaravelan (xtreak) * Date: 2018‑09‑14 19:52 msg325420 ‑ (view) Author: Karthikeyan Singaravelan (xtreak) * Date: 2018‑09‑15 03:43 msg325558 ‑ (view)...
Read more >
Issue 38785: Segmentation fault in asyncio - Python tracker
Get Segmentation fault on run script in attachment. ... Islington (bot) in branch '3.7': bpo-38785: Prevent asyncio from crashing (GH-17144) ...
Read more >
Segmentation fault with urllib.request.urlopen and threads
The problem appears to occur in python 3.7 but not python 3.8 or python 3.6 (on a different machine). $ python urllib_segfault.py ...
Read more >
Issue 27945: Various segfaults with dict - Python tracker
poc24.py Program received signal SIGSEGV, Segmentation fault. ... 7 ms: 1.04x faster - telco: 87.4 ms +- 3.7 ms -> 84.2 ms +-...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found