Giampaolo Rodola' added the comment:
Done. Sorry for the delay.
--
resolution: -> fixed
stage: patch review -> committed/rejected
status: open -> closed
___
Python tracker
<http://bugs.pyth
New submission from Giampaolo Rodola' :
Patch in attachment adds a "running" property to figure out whether the server
is running or not.
Also it raises an exception in case the server has already been started or
stopped. IMO such an event should be prevented beforehand a
Changes by Giampaolo Rodola' :
--
title: Add socketserver.running property -> Add socketserver running property
___
Python tracker
<http://bugs.python.org
Changes by Giampaolo Rodola' :
--
keywords: +needs review -patch
___
Python tracker
<http://bugs.python.org/issue14375>
___
___
Python-bugs-list mailing list
Giampaolo Rodola' added the comment:
I agree it would be great to do this, in fact I'm using a modified version of
asyncore supporting register(), unregister() and modify() methods for file
descriptors, and the performance benefits are enormous.
On the other hand, it appears t
Changes by Giampaolo Rodola' :
--
nosy: +giampaolo.rodola
___
Python tracker
<http://bugs.python.org/issue14373>
___
___
Python-bugs-list mailing list
Unsubsc
Giampaolo Rodola' added the comment:
Closing as duplicate of issue 13694.
--
resolution: -> duplicate
status: open -> closed
versions: +Python 2.7
___
Python tracker
<http://bugs.python.
Changes by Giampaolo Rodola' :
--
assignee: -> giampaolo.rodola
priority: high -> normal
resolution: -> fixed
stage: patch review -> committed/rejected
status: open -> closed
___
Python tracker
<http://bug
Giampaolo Rodola' added the comment:
Sorry about that. It should now be fixed.
--
___
Python tracker
<http://bugs.python.org/issue10340>
___
___
Pytho
Giampaolo Rodola' added the comment:
http://hg.python.org/cpython/rev/0b960e41e533
Let's see how it goes.
--
___
Python tracker
<http://bugs.python.o
Changes by Giampaolo Rodola' :
--
nosy: +giampaolo.rodola
___
Python tracker
<http://bugs.python.org/issue14386>
___
___
Python-bugs-list mailing list
Unsubsc
Changes by Giampaolo Rodola' :
--
nosy: +giampaolo.rodola
___
Python tracker
<http://bugs.python.org/issue13749>
___
___
Python-bugs-list mailing list
Unsubsc
Changes by Giampaolo Rodola' :
--
nosy: +giampaolo.rodola
___
Python tracker
<http://bugs.python.org/issue5824>
___
___
Python-bugs-list mailing list
Unsubsc
Changes by Giampaolo Rodola' :
--
nosy: +giampaolo.rodola
___
Python tracker
<http://bugs.python.org/issue1767511>
___
___
Python-bugs-list mailing list
Changes by Giampaolo Rodola' :
--
nosy: +giampaolo.rodola
___
Python tracker
<http://bugs.python.org/issue12184>
___
___
Python-bugs-list mailing list
Unsubsc
Change by Giampaolo Rodola' :
--
nosy: +giampaolo.rodola
___
Python tracker
<https://bugs.python.org/issue36997>
___
___
Python-bugs-list mailing list
Giampaolo Rodola' added the comment:
New changeset a16387ab2d85f19665920bb6ff91a7e57f59dd2a by Giampaolo Rodola
(Ying Wang) in branch 'master':
bpo-24564: shutil.copystat(): ignore EINVAL on os.setxattr() (GH-13369)
https://github.com/python
Change by Giampaolo Rodola' :
--
pull_requests: +13563
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/13675
___
Python tracker
<https://bugs.python.org
Giampaolo Rodola' added the comment:
I currently have no Solaris box to test this against and am currently short on
time but I'm of the opinion that because of:
> Sendfile on Solaris can raise EINVAL if offset is equal or bigger than the
size
> of the file (Python expe
Giampaolo Rodola' added the comment:
New changeset f1487b323549e2360460383b4304f6592fb38e27 by Giampaolo Rodola
(Miss Islington (bot)) in branch '3.7':
bpo-24564: shutil.copystat(): ignore EINVAL on os.setxattr() (GH-13369)
https://github.com/python
Change by Giampaolo Rodola' :
--
resolution: -> fixed
stage: patch review -> resolved
status: open -> closed
versions: -Python 2.7
___
Python tracker
<https://bugs.pyth
Giampaolo Rodola' added the comment:
New changeset 413d955f8ec88a7183f91d7ad8b0ff7def803de3 by Giampaolo Rodola in
branch 'master':
bpo-36610: shutil.copyfile(): use sendfile() on Linux only (GH-13675)
https://github.com/python/cpython/commit/413d955f8ec88a7183f91d7ad
Change by Giampaolo Rodola' :
--
assignee: -> giampaolo.rodola
resolution: -> fixed
stage: patch review -> resolved
status: open -> closed
___
Python tracker
<https://bugs.p
New submission from Giampaolo Rodola' :
The need for this emerged in:
https://bugs.python.org/issue36610#msg343948.
We currently use sendfile(2) syscall in high-level shutil.copyfile() on Linux
and socket.sendfile() on UNIX. In addition this PR also tests shutil.copyfile()
implementati
Change by Giampaolo Rodola' :
--
keywords: +patch
pull_requests: +13564
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/13676
___
Python tracker
<https://bugs.python.org
Giampaolo Rodola' added the comment:
>From RFC-959:
If the server is unable to accept input right away, a
120 "expected delay" reply should be sent immediately and a 220
reply when ready. The user will then know not to hang up if there
is a delay.
S
Giampaolo Rodola' added the comment:
shutil.copyfile() already uses sendfile() which basically provides the same
performances. sendfile() should be preferred though because it’s supported
since Linux 2.6.33.
--
___
Python tracker
&
Giampaolo Rodola' added the comment:
I think data deduplication / CoW / reflink copy is better implemented via
FICLONE. "cp --reflink" uses it, I presume because it's older than
copy_file_range(). I have a working patch adding CoW copy support for Linux and
OSX (but n
Giampaolo Rodola' added the comment:
Actually "man copy_file_range" claims it can do server-side copy, meaning no
network traffic between client and server if *src* and *dst* live on the same
network fs. So I agree copy_file_range() should be preferred over sendfile()
after a
Giampaolo Rodola' added the comment:
I'm attaching an initial PoC using FICLONE on Linux and clonefile(3) on OSX. It
is also possible to support Windows but it requires a ReFS partition to test
against which I currently don't have. I opted for exposing reflink() as a
se
New submission from Giampaolo Rodola' :
This is a follow up of issue33639 (zero-copy via sendfile()) and issue26828
(os.copy_file_range()). On [Linux 4.5 / glib 2.27] shutil.copyfile() will use
os.copy_file_range() instead of os.sendfile(). According to my benchmarks
performances ar
Giampaolo Rodola' added the comment:
> Please open a new issue to discuss how it can used in shutil ;-)
Use copy_file_range() in shutil.copyfile():
https://bugs.python.org/issue37159
--
___
Python tracker
<https://bugs.python.org
Change by Giampaolo Rodola' :
--
nosy: +StyXman, desbma, facundobatista, martin.panter, ncoghlan, neologix,
pablogsal, petr.viktorin, vstinner
___
Python tracker
<https://bugs.python.org/is
Change by Giampaolo Rodola' :
--
title: Have shutil.copyfile() use copy_file_range() -> Use copy_file_range() in
shutil.copyfile() (server-side copy)
___
Python tracker
<https://bugs.python.org
Giampaolo Rodola' added the comment:
issue37157 is for reflink / CoW copy, this one is not.
--
___
Python tracker
<https://bugs.python.org/issue37159>
___
___
Giampaolo Rodola' added the comment:
Nope, it doesn't (see man page). We can simply use FICLONE (cp does the same).
--
___
Python tracker
<https://bugs.python.o
Giampaolo Rodola' added the comment:
> I'm not sure that attempt to call unlink() if FICLONE fails is a good idea
Agreed.
> I dislike the *fallback* parameter of reflink().
Me too. A specific exception is better.
> Why not exposing clonefile() as os.clonefile() but os
Giampaolo Rodola' added the comment:
Adding a new patch (still a PoC, will create a PR when I have something more
solid).
--
Added file: https://bugs.python.org/file48393/cow2.diff
___
Python tracker
<https://bugs.python.org/is
Giampaolo Rodola' added the comment:
I am not sure I understand the use case. Other than "unmounting a mount point"
the other scenarios look unrealistic to me and also require a fd instead of a
path. Also, if you want to unmount a path you can do so via *onerror* instead
(u
Giampaolo Rodola' added the comment:
> in case a filesystem has been mounted on the temporary directory, this can
> lead to the entire filesystem being removed
-1
That is expected behavior and the use case looks pretty unusual. Such a new
parameter wouldn't even be su
Giampaolo Rodola' added the comment:
I'm gonna reject this one, sorry Jeffrey. Reasons given in
https://bugs.python.org/issue36422#msg346878 also apply here.
--
resolution: -> rejected
stage: patch review -> resolved
status
Change by Giampaolo Rodola' :
--
nosy: +giampaolo.rodola
___
Python tracker
<https://bugs.python.org/issue33408>
___
___
Python-bugs-list mailing list
Giampaolo Rodola' added the comment:
There’s too much code out there relying on both args (especially ignore_errors
in unit tests) that would break for no real benefit.
--
___
Python tracker
<https://bugs.python.org/is
Giampaolo Rodola' added the comment:
Is the main goal to just make Popen.__init__ non-blocking? If not, #1191964
aims at providing non-blocking reads/writes (including on Windows).
--
nosy: +giampaolo.rodola
___
Python tracker
Changes by Giampaolo Rodola' :
--
nosy: +giampaolo.rodola
___
Python tracker
<http://bugs.python.org/issue19640>
___
___
Python-bugs-list mailing list
Changes by Giampaolo Rodola' :
--
nosy: +giampaolo.rodola
___
Python tracker
<http://bugs.python.org/issue28638>
___
___
Python-bugs-list mailing list
Giampaolo Rodola' added the comment:
> Should we consider a C-based implementation like
> https://github.com/ll/cnamedtuple?
> It could improve speed even more, but would be harder to maintain and
> test and harder to keep compatible. My sense is that it's
Giampaolo Rodola' added the comment:
> While "40x faster" is more 10x faster than "4x faster", C
> implementation can boost only CPython and makes maintenance more harder.
As a counter argument against "let's not do it because it'll be harder to
m
Giampaolo Rodola' added the comment:
New changeset 2b1e6e9696cb433c0e0da11145157d54275d119f by Giampaolo Rodola
(Dong-hee Na) in branch 'master':
bpo-30119: fix ftplib.FTP.putline() to throw an error for a illegal command
(#1214)
https://github.com/python
Giampaolo Rodola' added the comment:
Reopening as it needs backports for 2.7, 3.3, 3.4, 3.5 and 3.6.
--
resolution: fixed ->
stage: resolved -> backport needed
status: closed -> pending
versions: +Python 2.7, Python 3.3, Python 3.4, Python 3
Giampaolo Rodola' added the comment:
Sorry, I accidentally picked up the wrong thread.
--
resolution: -> fixed
stage: backport needed -> resolved
status: pending -> closed
versions: -Python 2.7, Python 3.3, Python 3.4, Python 3
Giampaolo Rodola' added the comment:
Reopening as it needs backports for 2.7, 3.3, 3.4, 3.5 and 3.6.
--
resolution: duplicate ->
stage: resolved -> backport needed
status: closed -> pending
versions: +Python 2.7, Python 3.3, Python 3.4, Python 3
Giampaolo Rodola' added the comment:
> Yes, this is a typical issue in asyncore if you don't protect your
> subclass to handle double close.
I use the same trick all over the place in pyftpdlib:
https://github.com/giampaolo/pyftpdlib/blob/1268bb185cd63c657d78bc33309041628e
Giampaolo Rodola' added the comment:
I welcome this change as it avoids tricks like this one:
https://github.com/giampaolo/pyftpdlib/blob/1268bb185cd63c657d78bc33309041628e62360a/pyftpdlib/handlers.py#L537
Any app using asyncore for anything other than an echo server eventually ends
up
Giampaolo Rodola' added the comment:
On the other hand, due to the poor asyncore API, I think it's safer if we land
this in 3.7 only. "closing" attribute was never documented so if there's code
out there setting it to True that'll crash their app pretty q
Giampaolo Rodola' added the comment:
I would probably feel safer to use "__closed" for all python versions and adopt
the same naming convention for any attribute we may want to add in the future.
Kinda weird, but asyncore is probably the only case of deprecated module with
Giampaolo Rodola' added the comment:
> What about rejecting also NUL byte?
I don't it would make any difference at this point.
--
___
Python tracker
<http://bugs.pytho
Giampaolo Rodola' added the comment:
AFAIK its only use case is to escape \r and \n.
--
___
Python tracker
<http://bugs.python.org/issue30119>
___
___
Pytho
Changes by Giampaolo Rodola' :
--
nosy: +giampaolo.rodola
___
Python tracker
<http://bugs.python.org/issue29256>
___
___
Python-bugs-list mailing list
Changes by Giampaolo Rodola' :
--
nosy: +giampaolo.rodola
___
Python tracker
<http://bugs.python.org/issue29214>
___
___
Python-bugs-list mailing list
Giampaolo Rodola' added the comment:
+1, I would push https://github.com/python/cpython/pull/2854/ first and fix the
race condition only.
--
___
Python tracker
<http://bugs.python.org/is
Changes by Giampaolo Rodola' :
--
assignee: -> giampaolo.rodola
___
Python tracker
<http://bugs.python.org/issue30931>
___
___
Python-bugs-list mailing li
Giampaolo Rodola' added the comment:
MS documentation is not clear on what function should be used as there are many
returning different values. Here it is being suggested to use
GetLogicalProcessorInformationEx:
https://stackoverflow.com/questions/31209256/reliable-way-to-programmati
Giampaolo Rodola' added the comment:
About GetMaximumProcessorCount, MS doc states that it returns the "maximum
number of logical processors that a processor group or the system can have", so
maybe it also includes "empty" CPU sockets.
GetActiveProcessorCount, on the
Giampaolo Rodola' added the comment:
I agree that the MS Docs for this are a bit confusing. I ended up reaching out
to the guy who authored the GetMaximumProcessorCount function. I had also
written an implementation that iterated over GetProcessorInformationEx and he
advised against it.
Changes by Giampaolo Rodola' :
--
nosy: +giampaolo.rodola
___
Python tracker
<http://bugs.python.org/issue26692>
___
___
Python-bugs-list mailing list
Changes by Giampaolo Rodola' :
--
nosy: +giampaolo.rodola
___
Python tracker
<http://bugs.python.org/issue23530>
___
___
Python-bugs-list mailing list
Change by Giampaolo Rodola' :
--
nosy: -giampaolo.rodola
___
Python tracker
<https://bugs.python.org/issue26415>
___
___
Python-bugs-list mailing list
Giampaolo Rodola' added the comment:
My bad. Thanks for fixing it.
--
___
Python tracker
<https://bugs.python.org/issue35434>
___
___
Python-bugs-list m
Giampaolo Rodola' added the comment:
Interesting. Yes, I agree this proposal is still desirable. We can reuse
socket.create_server_sock() in smtpd, ftplib, socketserver (issue20215) and
http.server (issue24209) modules which will inherit dual-stack IPv4/6
capabilities for free. I shou
Giampaolo Rodola' added the comment:
I'm not sure I understand what EPOLLEXCLUSIVE is about. Could you provide a use
case?
Also, there are other constants which may also be useful such as EPOLLWAKEUP
and EPOLLONESHOT:
http://man7.org/linux/man-pages/man2/epoll_ctl.2.html
So perhap
Giampaolo Rodola' added the comment:
I see. Then I would say it's a matter of deciding what's the best API to
provide. Another possibility is to promote the underlying epoll() instance as a
public property, so one can do:
>>> s = selectors.EpollSelector()
>&
Giampaolo Rodola' added the comment:
I took a look at your PR. As the PR currently stands it only works with epoll()
selector. For the other selectors this is just an extra argument which does
nothing, so it complicates the API of 2 methods for no real gain. Also, a
single argument i
Change by Giampaolo Rodola' :
--
pull_requests: +10452
stage: -> patch review
___
Python tracker
<https://bugs.python.org/issue17561>
___
___
Python-bug
Giampaolo Rodola' added the comment:
New changeset 9e00d9e88fbf943987e4771c753f5ca8f794103e by Giampaolo Rodola
(jab) in branch 'master':
bpo-20849: add dirs_exist_ok arg to shutil.copytree (patch by Josh Bronson)
https://github.com/python
Change by Giampaolo Rodola' :
--
assignee: -> giampaolo.rodola
resolution: -> fixed
stage: patch review -> commit review
status: open -> closed
___
Python tracker
<https://bugs.p
Change by Giampaolo Rodola' :
--
pull_requests: +11528
___
Python tracker
<https://bugs.python.org/issue35537>
___
___
Python-bugs-list mailing list
Unsubscr
New submission from Giampaolo Rodola' :
This is a follow up of BPO-35813 and PR-11664 and it provides unit tests for
SyncManager and SharedMemoryManager classes + all the shareable types which are
supposed to be supported by them. Also, see relevant python-dev discussion at:
Change by Giampaolo Rodola' :
--
keywords: +patch
pull_requests: +11740
___
Python tracker
<https://bugs.python.org/issue35917>
___
___
Python-bugs-list m
Change by Giampaolo Rodola' :
--
keywords: +patch, patch, patch
pull_requests: +11740, 11741, 11742
___
Python tracker
<https://bugs.python.org/is
Change by Giampaolo Rodola' :
--
keywords: +patch, patch
pull_requests: +11740, 11741
___
Python tracker
<https://bugs.python.org/issue35917>
___
___
Pytho
Giampaolo Rodola' added the comment:
Unit-tests at https://bugs.python.org/issue35917.
--
nosy: +giampaolo.rodola
___
Python tracker
<https://bugs.python.org/is
New submission from Giampaolo Rodola' :
Related to BPO-35917:
$ ./python
Python 3.8.0a1+ (heads/master:cd90f6a369, Feb 6 2019, 17:16:10)
[GCC 7.3.0] on linux
>>> import multiprocessing.managers
>>> m = multiprocessing.managers.SyncManager()
>>> m.start()
&
Giampaolo Rodola' added the comment:
Assigning this to me but am not sure 1) when I'll be able to look at this 2)
whether it's worth it as asyncore is deprecated in favor of asyncio.
--
assignee: -> giampaolo.rodola
___
Pyth
New submission from Giampaolo Rodola' :
import multiprocessing
import multiprocessing.managers
def f(n):
return n * n
def worker(pool):
with pool:
pool.apply_async(f, (10, ))
manager = multiprocessing.managers.SyncManager()
manager.start()
pool = manager.Pool(proces
Giampaolo Rodola' added the comment:
Also, for completeness (since discussion is getting split), please see my
proposal to move SharedMemoryManager and SharedMemoryServer into
multiprocessing.managers namespace and rename shared_memory.py to
_shared_memory.py:
https://mail.pytho
Giampaolo Rodola' added the comment:
> When recv() return 0 we may still have data to send.
It seems recv() returning b"" is an alias for "connection lost". E.g. in
Twisted:
https://github.com/twisted/twisted/blob/06c891502be9f6389451fcc959cad5485f55d653/src/twist
Giampaolo Rodola' added the comment:
I agree. The problem I have with this is that it introduces a new method
(handle_eof), which ends up in the "new functionality" bucket (even though it's
not backward incompatible per-se, as it defaults on calling handle_close()
any
New submission from Giampaolo Rodola' :
The main point of this patch is to automatize all the necessary tasks which are
usually involved when creating a server socket, amongst which:
* determining the right family based on address, similarly to
socket.create_connection()
* whether t
Change by Giampaolo Rodola' :
--
keywords: +patch, patch
pull_requests: +11769, 11770
___
Python tracker
<https://bugs.python.org/issue35934>
___
___
Pytho
Change by Giampaolo Rodola' :
--
keywords: +patch, patch, patch
pull_requests: +11769, 11770, 11771
___
Python tracker
<https://bugs.python.org/is
Change by Giampaolo Rodola' :
--
keywords: +patch
pull_requests: +11769
___
Python tracker
<https://bugs.python.org/issue35934>
___
___
Python-bugs-list m
Giampaolo Rodola' added the comment:
After careful thinking I realize I'm not completely sure about how to expose
the IPv4/6 functionality yet. I prefer to defer it for later and start landing
a bind_socket() utility function which serves as a base for this functionality.
See:
Giampaolo Rodola' added the comment:
Pablo thanks a lot for taking care of this.
--
___
Python tracker
<https://bugs.python.org/issue35940>
___
___
Pytho
Giampaolo Rodola' added the comment:
I submitted an initial review / comments in the PR. I think this is good for a
first iteration in order to understand what APIs to expose publicly (also, keep
in mind I may not have a full picture of how this is intended to be used
precisely).
A
Giampaolo Rodola' added the comment:
New changeset a31f4cc881992e84d351957bd9ac1a92f882fa39 by Giampaolo Rodola
(Rémi Lapeyre) in branch 'master':
bpo-35918: Remove broken has_key method and add test (#11819)
https://github.com/python/cpython/commit/a31f4cc881992e84d351957bd
Giampaolo Rodola' added the comment:
New changeset 58f05ce059cc5207320fef27a9fbc0ffdc2b1d1a by Giampaolo Rodola
(Miss Islington (bot)) in branch '3.7':
bpo-35918: Remove broken has_key method and add test (GH-11819) (#11824)
https://github.com/python
Giampaolo Rodola' added the comment:
After iterating over this over the last few days I realized it makes more sense
to implement and discuss the whole thing in here and as a single PR, so sorry
about previously splitting this in a separate ticket/PR. Relevant PR is now
this one a
Giampaolo Rodola' added the comment:
Closing this out as duplicate. Will continue in issue35934.
--
resolution: -> duplicate
stage: patch review -> resolved
status: open -> closed
___
Python tracker
<https://bugs.pyth
Giampaolo Rodola' added the comment:
The proposed change makes the problem a lot less likely to occur, but
technically it doesn't fix it because if the src file/dir disappears between
"os.path.exists(src)" and os.rename(src, dst)" calls you'll end up with a race
801 - 900 of 1749 matches
Mail list logo