Numpy: рдЙрдмрдВрдЯреВ 16.04 рдкрд░ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдЕрддреАрдд рдореЗрдВ рдкрдврд╝рдиреЗ рдкрд░ рдЕрд╡реИрдз рдбреЗрдЯрд╛ рдФрд░ рд╕реЗрдЧрдлрд╝реЙрд▓реНрдЯ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 31 рдЕрдХреНрддреВре░ 2018  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: numpy/numpy


fromfile рдЕрдорд╛рдиреНрдп рдбреЗрдЯрд╛ рдФрд░ рдХрднреА-рдХрднреА segfault рдпрджрд┐ рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рдкрдарди рд╣реЛрддрд╛ рд╣реИ рдЕрд░реНрдерд╛рдд рдпрд╣ рдЬрд╛рдБрдЪ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкрдарди рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬрд╛рдПрдЧрд╛ рдпрд╛ рдирд╣реАрдВред рдпрд╣ рд╕рдорд╕реНрдпрд╛ Ubuntu 16.04 рдкрд░ рдПрдХ segfault рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди OSX рдкрд░ segfault рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред

рдХреЛрдб рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛:

import numpy as np

def test_read_from_file():
    # create an empty file named `empty.bin`
    filename = 'empty.bin'
    open(filename, 'a').close()

    # read large chunk of data, past the end of the file
    dtype = [('data', '<f4', 500,)]
    count = 100000000

    with open(filename, 'rb') as fh:
        data = np.fromfile(fh, dtype, count)

    print(data.shape)

рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢:


рдПрдЧреНрдЬрд┐рдЯ рдХреЛрдб 139 (рд╕рд┐рдЧреНрдирд▓ 11 рджреНрд╡рд╛рд░рд╛ рдмрд╛рдзрд┐рдд: SIGSEGV) рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реБрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛

Numpy / рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рдирдХрд╛рд░реА:

рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд▓рд┐рдиреЗрдХреНрд╕ - рдкрд╛рдпрдерди 3.6.6, рдкрд╛рдЗрд╕реНрдЯреЗрд╕реНрдЯ-3.8.2, py-1.6.0, рдкреНрд▓рдЧреНрдЧреА-0.7.1

00 - Bug numpy.core

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣рд╛рдБ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ ubuntu рдкрд░ рдЖрдкрдХреЛ MemoryError рд░рд╣рд╛ рд╣реИ рдЬреЛ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ segfault рдХрд╛ рдХрд╛рд░рдг рдмрди рд░рд╣рд╛ рд╣реИред

рдПрдХ рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдкреАрдЖрд░ рдпрд╣рд╛рдБ рд╣реИ: https://github.com/numpy/numpy/pull/12354

рд╕рднреА 4 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдмрд╕ 1.15.3 рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЖрдХрд╛рд░ рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рддреНрд░реБрдЯрд┐ рдмрдврд╝рд╛рдиреА рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдкреВрд░реА рдлрд╛рдЗрд▓ рдХреЛ рдкрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдпрд╣ рдХреБрдЫ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдкрд░ рдЪреБрдкрдЪрд╛рдк рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╢рд╛рдпрдж рд╣рдореЗрдВ рдмрд╕ рдПрдХ рдиреЛрдЯ рдЬрд╛рд░реА рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдореИрдВ рдЕрднреА рднреА рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдореИрдВ рддреНрд░реБрдЯрд┐ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдкреВрд░реА рдлрд╛рдЗрд▓ рдЕрдиреБрдХреНрд░рдордг рдХреЗ рдХрд╛рд░рдг рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ рдЕрдиреБрдХреНрд░рдордг рдереЛрдбрд╝рд╛ рд╡рд┐рд╢реЗрд╖ рд╣реИред

рд╕рд╣рдордд, рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЛ рдЙрдард╛рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд▓рдЧрддрд╛ рд╣реИред рдЕрднреА рднреА рдЖрдВрд╢рд┐рдХ рдкрдарди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдХрд╣рд╛ рдЬрд╛рдирд╛ рд╣реИ, рдЬрд┐рд╕реЗ рджреЛ рддрд░реАрдХреЛрдВ рд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  1. рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рддрдХ рд╕рдВрднрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдХрдИ рдбреЗрдЯрд╛ рд░рд┐рдХреЙрд░реНрдб рдпрд╛ count fromfile рддрдХ рдкрд╣реБрдВрдЪ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рддрдм рд╣рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдП рдЧрдП рд░рд┐рдХреЙрд░реНрдб рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрдВрддреНрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкрдврд╝реЗрдВ) рдпрд╣ рдкрд░рд┐рдгрд╛рдореА рд╕рд░рдгреА рдХреЗ рдЖрдХрд╛рд░ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдиреА рдЪрд╛рд╣рд┐рдП)ред рдПрдХ рддреНрд░реБрдЯрд┐ рдЕрднреА рднреА рдЙрдард╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рдкрд░рд┐рджреГрд╢реНрдп рдирд╣реАрдВ рд╣реИред
  2. рдпрджрд┐ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдкрдврд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдХрд╛рд░ рдХреЛ рдкрдврд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рди рджреЗрдВ, рд╢реЗрд╖ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХреМрди рд╕реЗ рдкрд░рд┐рджреГрд╢реНрдп рд╕реБрд╕реНрдкрд╖реНрдЯ рджрд░реНрд╢рди рдХреЗ рд╕рд╛рде рдмреЗрд╣рддрд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкрд╣рд▓рд╛ рд╡рд┐рдХрд▓реНрдк рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧреА рд▓рдЧрддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдмрд╕реЗ рдЙрдЪрд┐рдд рд╣реИред рдореБрдЭреЗ рдЕрднреА рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдлрд╝реЙрд░реНрдлрд╝рд╛рдЗрд▓ рдЙрди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреА рддрд░рд╣ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдЬреНрдЮрд╛рдд рдЖрдХрд╛рд░ рдирд╣реАрдВ рд╣реИ, рдпрд╛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдиреЙрди-рдЦрд╛рд▓реА рд╕реЗрдк рдХрд░реНрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред

@amuresan рдХреЛрдб forfile C рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдереЛрдбрд╝рд╛ рд╕рдордп рд╣реИ, рддреЛ рд╣рдо рд╣рдореЗрд╢рд╛ рдкреБрд▓ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдЦреБрд╢ рд╣реИрдВ, рдФрд░ рдпрд╣ рд╕реА (рдкрд╛рдпрдерди) рдПрдкреАрдЖрдИ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛ рдбрдм рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдЪрд┐рдд рдХрдард┐рдирд╛рдИ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣рд╛рдБ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ ubuntu рдкрд░ рдЖрдкрдХреЛ MemoryError рд░рд╣рд╛ рд╣реИ рдЬреЛ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ segfault рдХрд╛ рдХрд╛рд░рдг рдмрди рд░рд╣рд╛ рд╣реИред

рдПрдХ рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдкреАрдЖрд░ рдпрд╣рд╛рдБ рд╣реИ: https://github.com/numpy/numpy/pull/12354

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

toddrjen picture toddrjen  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

dmvianna picture dmvianna  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

qualiaa picture qualiaa  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

perezpaya picture perezpaya  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

thouis picture thouis  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ