Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Typo in netref.class_factory? #339

Closed
pilcru opened this issue Jul 7, 2019 · 1 comment
Closed

Typo in netref.class_factory? #339

pilcru opened this issue Jul 7, 2019 · 1 comment
Assignees
Labels
Done The issue discussion is exhausted and is closed w/ comment

Comments

@pilcru
Copy link

pilcru commented Jul 7, 2019

While investigating the other issue I posted today, I came across this line in core.netref.py. I'm almost certain this is a typo, but I wasn't able to link it to an actual bug. It might have no impact at all given how it's used in protocol.netref_factory.py.

Here is the code:

if _module:
    if id_pack[0] != 0:
        ns["__class__"] = _module
    else:
        ns["__class__"] = getattr(_module, "__class__", None)

The test id_pack[0] != 0 does not make sense since id_pack[0] is the name_pack string. Instead I think it should be

if _module:
    if id_pack[2] == 0:
       ...

Then if the object to be netref-ed is a class (id_pack[2] == 0), we can directly use it rather than finding its base class first.

@comrumino comrumino added the To Start Description reviewed and a maintainer needs "to start" triage label Jul 9, 2019
@comrumino comrumino self-assigned this Jul 9, 2019
@comrumino
Copy link
Collaborator

Ah good catch! It was supposed to be used in the else statement. Without it, some use cases could result in infinite recursion.

@comrumino comrumino added Done The issue discussion is exhausted and is closed w/ comment and removed To Start Description reviewed and a maintainer needs "to start" triage labels Sep 23, 2019
YuvalEvron pushed a commit to weka/rpyc that referenced this issue Oct 27, 2019
* Added warning to _remote_tb when the major version of local and remote mismatch (tomerfiliba-org#332)

* Added `include_local_version` to DEFAULT_CONFIG to allow for configurable security controls (e.g. `include_local_traceback`)

* Update readme.txt

* Added break to client process loop when everything is dead

* Increased chunk size to improve multi-client response time and throughput of large data tomerfiliba-org#329

* Improved test for response of client 1 while transferring a large amount of data to client 2

* Cleaned up coding style of test_service_pickle.py

* Updated issue template

* added vs code testing cfgs; updated gitignore venv

* Changed settings.json to use env USERNAME

* Name pack casted in _unbox to fix IronPython bug. Fixed tomerfiliba-org#337

* Fixed netref.class_factory id_pack usage per tomerfiliba-org#339 and added test cases

* Added .readthedocs.yml and requirements to build

* Make OneShotServer terminates after client connection ends

* Added unit test for OneShotServer. Fixed tomerfiliba-org#343

* Fixed 2.6 backwards incompatibility for format syntax

* Updated change log and bumped version --- 4.1.1

* Added support for chained connections which result in netref being passed to get_id_pack. Fixed tomerfiliba-org#346

* Added tests for get_id_pack

* Added a test for issue tomerfiliba-org#346

* Corrected the connection used to inspect a netref

* Refactored __cmp__ getattr

* Extended rpyc over rpyc unit testing and removed port parameter from TestRestricted

* Added comment explaining the inspect for intermediate proxy. Fixed tomerfiliba-org#346

* Improved docstring for serve_threaded to address when and when not to use the method. Done tomerfiliba-org#345

* Release 4.1.2

* Fixed versions referred to in security.rst

* link docs instead of mitre

* set up logging with a better formatter

* fix bug when proxy context-manager is being exited with an exception (#1)

* logging: add a rotating file log handler

* fix bug when proxy context-manager is being exited with an exception (#1)

* logging: add a rotating file log handler
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
Done The issue discussion is exhausted and is closed w/ comment
Projects
None yet
Development

No branches or pull requests

2 participants