text:
Fixing links in README.md

Hey, you forgot the "https://" on some of the links, I fixed it.

@heruying Codeforces doesn't use https. http only.

authors: LeandroTk heruying

repo: LeandroTk/algorithms


text:
Please don't hide non zero amounts while blind signing

Please don't hide non zero amounts! It is usually zero, but I want to know when it is not. This way you hiding when some rogue smart contact want to steal ETH!
Originally posted by @0x398 in https://github.com/LedgerHQ/app-ethereum/pull/692#issuecomment-2540205455

You're right @0x398 , the purpose of the PR https://github.com/LedgerHQ/app-ethereum/pull/692 has two objectives:

Introduce the transaction hash to highlight that some data hasn't been decoded in this transaction.
Hide the ETH amount when it's 0 as it give a false sense of safety -> other tokens might be transferred for instance.

But it's true that when ETH amount isn't 0, it doesn't make sense to hide it.
The team is currently working on preparing a PR to fix this.

source: gharchive/issue

repo: LedgerHQ/app-ethereum

license_type: permissive

license_source: github-api


text:
[LIVE-7519]: pass padding top into modal body

📝 Description

Allow the passing of padding top (pt) into the ModalBody component. This parameter is completely optional and will default to the previous value of 20px in cases where it is left undefined.

❓ Context

Impacted projects: LLD

✅ Checklist

[x] Test coverage
[x] Atomic delivery
[x] No breaking changes

📸 Demo

🚀 Expectations to reach
https://ledgerhq.atlassian.net/browse/LIVE-7519

/generate-screenshots

source: gharchive/pull-request

repo: LedgerHQ/ledger-live

license: MIT


text:
🛑 CompanyGuide3 is down

In b56f2b6, CompanyGuide3 (https://comp4.fnguide.com/server_variables.asp) was down:

HTTP code: 0
Response time: 0 ms

Resolved: CompanyGuide3 is back up in 0fb0fd2.


text:
🛑 Retamin3 is down

In 5415291, Retamin3 (https://app3.wisereport.co.kr/Home/ServerCheck) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Retamin3 is back up in f73904b.


text:
[improvement]Code extension support menuBar and popupMenu

as title

My current problem is that I haven't found a suitable icon 😂
Currently use fontawsome icons, which are limited for editor category
https://fontawesome.com/icons?d=gallery&m=free

Maybe you should use https://fontawesome.com/icons?d=gallery&q=tag

authors: Jinkeycode Leecason

repo: Leecason/element-tiptap


text:
Dump and restore file

Hi Peter
I want added access points (apn)
Do I can for example, the work of back up. data/data/com.android.settings/ and restore   without EXEC
Through the dump for example of the beginning of the user data by sector.
from you, I weak in English

Compared after dump user data from the data  before and after adding apn, but the problem data were not in a partial small  was distributed along the partition
Is there a way other addition Internet settings (apn)
And Thank you very much

repo: Lekensteyn/lglaf

license: mit

license_source: bigquery


text:
feat: ✨ many features and qol fixes

✨ log levels
⚡ don't do extra zip and unzip

✨ --no-compress flag to not put template in a zip
✨ destination arg
🔊 filter out directories when sending verbose copy output to parse_zip_output
🐛 remove './' where ever possible in parse_zip_output to make everything uniform
✨ add --compress flag
⚡ don't put template.pros in tmp directory if we are not zipping

✨ supported kernels arg
✨ info log level
🐛 catch a bug where everything after --target being interpreted as a target param
✨ instead of just pros c create-template ..., pros conductor create-template ... also works now
🔊 provide useful logging for invalid subcommands
🔊 add more debug logs
🐛 ensure that if we are zipping, destination is handled properly (append .zip if there is not already a file extension there)
💄 expand out some flags to be --word flags rather than -w
🔊 print colors properly in parse_zip_output

Im worried that making this script so big might make it difficult to maintain, especially since this is intended to be a smaller project.
lmk what you think

we are no longer using pros-fake for now

repo: LemLib/pros-build


text:
id: defenses explanation is very long and may not be helpful

This needs to be turned into a much simpler summary, maybe with accordions.
I think ideal is a bullet that can be read on one screen.

Decision:
Shorten to bullet points.
Have a longer version that the tenant can take and use on their own later.
Consider sending tenants a reminder text/email closer to their court date that reminds them of the key points in their Answer.

Thinking this through more: integrate this into the review screen, reviewing each defense and organizing them underneath the review screen categories.
Add a very short summary page before the review screen that says something like "you have 3 defenses. On the next page, you can review them in detail. If you aren't sure about a defense, look at the facts you provided and make any changes you need. At the end of this interview, you will get a summary of your defenses and the evidence that you should bring with you to court that you can download and print to bring to court."


text:
Receive INTERNAL Error if no exception is thrown

Hello, good plugin, I like it.
I have an INTERNAL ERROR with pytest 7.2.2 - 7.3.0 with the plugin pytest-raises.
If I decorate a test with '@pytest.mark.raises(exception=Exception)', where Exception can be any type of exception.
If this test finishes without raising an exception, pytest prints INTERNAL ERROR and stop the execution with code 3.
A basic example of broken test
import pytest

@pytest.mark.raises(exception=Exception)
def test_not_raises_exception() -> None:
    assert True

Traceback
INTERNALERROR> Traceback (most recent call last):
INTERNALERROR>   File "/home/xyf/test_raises/.venv/lib/python3.9/site-packages/_pytest/main.py", line 269, in wrap_session
INTERNALERROR>     session.exitstatus = doit(config, session) or 0
INTERNALERROR>   File "/home/xyf/test_raises/.venv/lib/python3.9/site-packages/_pytest/main.py", line 323, in _main
INTERNALERROR>     config.hook.pytest_runtestloop(session=session)
INTERNALERROR>   File "/home/xyf/test_raises/.venv/lib/python3.9/site-packages/pluggy/_hooks.py", line 265, in __call__
INTERNALERROR>     return self._hookexec(self.name, self.get_hookimpls(), kwargs, firstresult)
INTERNALERROR>   File "/home/xyf/test_raises/.venv/lib/python3.9/site-packages/pluggy/_manager.py", line 80, in _hookexec
INTERNALERROR>     return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
INTERNALERROR>   File "/home/xyf/test_raises/.venv/lib/python3.9/site-packages/pluggy/_callers.py", line 60, in _multicall
INTERNALERROR>     return outcome.get_result()
INTERNALERROR>   File "/home/xyf/test_raises/.venv/lib/python3.9/site-packages/pluggy/_result.py", line 60, in get_result
INTERNALERROR>     raise ex[1].with_traceback(ex[2])
INTERNALERROR>   File "/home/xyf/test_raises/.venv/lib/python3.9/site-packages/pluggy/_callers.py", line 39, in _multicall
INTERNALERROR>     res = hook_impl.function(*args)
INTERNALERROR>   File "/home/xyf/test_raises/.venv/lib/python3.9/site-packages/_pytest/main.py", line 348, in pytest_runtestloop
INTERNALERROR>     item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem)
INTERNALERROR>   File "/home/xyf/test_raises/.venv/lib/python3.9/site-packages/pluggy/_hooks.py", line 265, in __call__
INTERNALERROR>     return self._hookexec(self.name, self.get_hookimpls(), kwargs, firstresult)
INTERNALERROR>   File "/home/xyf/test_raises/.venv/lib/python3.9/site-packages/pluggy/_manager.py", line 80, in _hookexec
INTERNALERROR>     return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
INTERNALERROR>   File "/home/xyf/test_raises/.venv/lib/python3.9/site-packages/pluggy/_callers.py", line 60, in _multicall
INTERNALERROR>     return outcome.get_result()
INTERNALERROR>   File "/home/xyf/test_raises/.venv/lib/python3.9/site-packages/pluggy/_result.py", line 60, in get_result
INTERNALERROR>     raise ex[1].with_traceback(ex[2])
INTERNALERROR>   File "/home/xyf/test_raises/.venv/lib/python3.9/site-packages/pluggy/_callers.py", line 39, in _multicall
INTERNALERROR>     res = hook_impl.function(*args)
INTERNALERROR>   File "/home/xyf/test_raises/.venv/lib/python3.9/site-packages/_pytest/runner.py", line 114, in pytest_runtest_protocol
INTERNALERROR>     runtestprotocol(item, nextitem=nextitem)
INTERNALERROR>   File "/home/xyf/test_raises/.venv/lib/python3.9/site-packages/_pytest/runner.py", line 133, in runtestprotocol
INTERNALERROR>     reports.append(call_and_report(item, "call", log))
INTERNALERROR>   File "/home/xyf/test_raises/.venv/lib/python3.9/site-packages/_pytest/runner.py", line 224, in call_and_report
INTERNALERROR>     report: TestReport = hook.pytest_runtest_makereport(item=item, call=call)
INTERNALERROR>   File "/home/xyf/test_raises/.venv/lib/python3.9/site-packages/pluggy/_hooks.py", line 265, in __call__
INTERNALERROR>     return self._hookexec(self.name, self.get_hookimpls(), kwargs, firstresult)
INTERNALERROR>   File "/home/xyf/test_raises/.venv/lib/python3.9/site-packages/pluggy/_manager.py", line 80, in _hookexec
INTERNALERROR>     return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
INTERNALERROR>   File "/home/xyf/test_raises/.venv/lib/python3.9/site-packages/pluggy/_callers.py", line 55, in _multicall
INTERNALERROR>     gen.send(outcome)
INTERNALERROR>   File "/home/xyf/test_raises/.venv/lib/python3.9/site-packages/_pytest/skipping.py", line 266, in pytest_runtest_makereport
INTERNALERROR>     rep = outcome.get_result()
INTERNALERROR>   File "/home/xyf/test_raises/.venv/lib/python3.9/site-packages/pluggy/_result.py", line 60, in get_result
INTERNALERROR>     raise ex[1].with_traceback(ex[2])
INTERNALERROR>   File "/home/xyf/test_raises/.venv/lib/python3.9/site-packages/pluggy/_callers.py", line 39, in _multicall
INTERNALERROR>     res = hook_impl.function(*args)
INTERNALERROR>   File "/home/xyf/test_raises/.venv/lib/python3.9/site-packages/_pytest/runner.py", line 368, in pytest_runtest_makereport
INTERNALERROR>     return TestReport.from_item_and_call(item, call)
INTERNALERROR>   File "/home/xyf/test_raises/.venv/lib/python3.9/site-packages/_pytest/reports.py", line 363, in from_item_and_call
INTERNALERROR>     longrepr = item.repr_failure(excinfo)
INTERNALERROR>   File "/home/xyf/test_raises/.venv/lib/python3.9/site-packages/_pytest/python.py", line 1833, in repr_failure
INTERNALERROR>     return self._repr_failure_py(excinfo, style=style)
INTERNALERROR>   File "/home/xyf/test_raises/.venv/lib/python3.9/site-packages/_pytest/nodes.py", line 484, in _repr_failure_py
INTERNALERROR>     return excinfo.getrepr(
INTERNALERROR>   File "/home/xyf/test_raises/.venv/lib/python3.9/site-packages/_pytest/_code/code.py", line 671, in getrepr
INTERNALERROR>     return fmt.repr_excinfo(self)
INTERNALERROR>   File "/home/xyf/test_raises/.venv/lib/python3.9/site-packages/_pytest/_code/code.py", line 987, in repr_excinfo
INTERNALERROR>     return ExceptionChainRepr(repr_chain)
INTERNALERROR>   File "/home/xyf/test_raises/.venv/lib/python3.9/site-packages/_pytest/_code/code.py", line 1039, in __init__
INTERNALERROR>     reprtraceback=chain[-1][0],
INTERNALERROR> IndexError: list index out of range

Process finished with exit code 3

The problem is present only if no exception is thrown.
Then the exception raised line 84 'raise ExceptionClass(failure_message)' in '_pytest_raises_validation' is hidden because '__tracebackhide__' is True.
If in the function '_pytest_fail_by_mark_or_set_excinfo' '__tracebackhide__' is set to False, pytest does not stop the execution, but the traceback is bad.

Bad Traceback
item = <Function test_not_raises_exception>
outcome = <pluggy._result._Result object at 0x7fc688f3e4f0>
marker_name = 'raises'
ExceptionClass = <class 'pytest_raises.pytest_raises.ExpectedException'>
failure_message = "Expected exception <class 'Exception'>, but it did not raise"
traceback = None

    def _pytest_fail_by_mark_or_set_excinfo(item, outcome, marker_name, ExceptionClass, failure_message, traceback):
        """
        Defer a test failure to a later stage, or set ``excinfo`` of ``outcome``, depending
        on ``marker_name``.  This function should only be called for test items that have
        failed -- the end result of calling this function for *any* ``item`` / ``outcome``
        is that the test will fail.

        .. warning::

            **This is a "private" function not intended to be called directly by external projects!**

        Depending on the stage at which this function is called, one of two actions will
        be performed:

        1. ``marker_name='setup_raises'``: a "secret" marker will be added to ``item``
           indicating that the test failed.  This marker is then checked at a later stage
           when it is safe to fail.  See documentation for :func:`_pytest_raises_validation`
           for more information.
        2. ``marker_name='raises'``: the ``outcome.excinfo`` will be populated with an
           exception traceback that will eventually (through ``pytest``) mark the test as
           failed.

        **Parameters**

        ``item``
            The ``pytest`` test item, e.g., what is supplied to
            ``pytest_runtest_setup(item)`` or ``pytest_runtest_call(item)``.

        ``outcome``
            The ``pytest`` test outcome for the ``@pytest.hookimpl(hookwrapper=True)`` hook
            wrappers, where ``outcome = yield``.

        ``marker_name``
            The string marker name.  Values are **assumed** to be ``'setup_raises'`` or
            ``'raises'`` **only**.

            - ``'setup_raises'``: call originates from ``pytest_runtest_setup`` hook wrapper.
            - ``'raises'``: call originates from ``pytest_runtest_call`` hook wrapper.

        ``ExceptionClass``
            The exception class to re-raise.  Expected to be :class:`ExpectedException` or
            :class:`ExpectedMessage`, but not strictly required.

        ``failure_message``
            The string failure message to mark with or re-raise, depending on the value
            of ``marker_name``.

        ``traceback``
            The traceback information if available, ``None`` otherwise.
        """
        # pylint: disable=unused-variable
        __tracebackhide__ = False
        if marker_name == 'setup_raises':
            # In the later stage when `fail` is called, it is nice to "simulate" an
            # exception by putting the expected exception class's name as a prefix.
            failure_message = '{}: {}'.format(ExceptionClass.__name__, failure_message)
            item.add_marker(pytest.mark.setup_raises_expected_exc_or_message_not_found(failure_message))
        else:  # marker_name == 'raises'
            # Avoid "while handling exception another exception occurred" scenarios.
            if issubclass(ExceptionClass, PytestRaisesUsageError):
                failure_message = '{}: {}'.format(ExceptionClass.__name__, failure_message)
                pytest.fail(failure_message, pytrace=False)
            else:
                try:
>                   raise ExceptionClass(failure_message)
E                   pytest_raises.pytest_raises.ExpectedException: Expected exception <class 'Exception'>, but it did not raise

.venv/lib/python3.9/site-packages/pytest_raises/pytest_raises.py:84: ExpectedException

I don't know how to fix this problem.
I have installed this dependencies:
Python = 3.9.5
coverage = "^7.1.0"
pytest = "<8.0.0"
pytest-asyncio = "<1.0.0"
pytest-cov = "^4.0.0"
pytest-raises = "<1.0.0"
pytest-xdist = {extras = ["psutil"], version = "^3.2.1"}
pytest-rich = "^0.1.1"
pytest-timer = "^0.0.11"
attrs = "^22.2.0"

It's a pytest bug pytest-dev/pytest#10903.
Fixed in pytest 7.3.1 https://github.com/pytest-dev/pytest/releases/tag/7.3.1

repo: Lemmons/pytest-raises


text:
[Forge] Tags related stuff

add #forge:mushrooms, #minecraft:enderman_holdable, #minecraft:terracotta / #forge:terracotta tags
also consider adding compat tag: #createadditions:plants

Done for the next update

authors: Lemonszz pmcrwf-mid

repo: Lemonszz/Biome-Makeover


text:
🛑 Liber / Selos is down

In ec7f583, Liber / Selos (http://www.liber.ufpe.br/selos/modules/home/listar_projeto.php?cod=1) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Liber / Selos is back up in 0e7f166 after 11 minutes.

repo: Liber-UFPE/upptime


text:
Class-based UDFs

Not finished, for discussion of the new interface. Refs #286

I addressed most of the comments, only the async/web API stuff remains. Also, the full_frames=False tiled processing is not finished, see #310 for a remark about possible interface changes there.
Do you want to port over the blobfinder UDFs, or should I do this?

udf_v2_wip is now merged!

repo: LiberTEM/LiberTEM


text:
TypeError with torch.finfo()

🐛 Bug
NeMo's Stable Diffusion uses HuggingFace Transformers that uses torch.finfo in one of its operations. When thunder.jit is used with Stable Diffusion, it gives an error:
TypeError (note: full exception trace is shown but execution is paused at: _run_module_as_main)
finfo(): argument 'type' (position 1) must be torch.dtype, not floating

although torch supports the dtype in torch.finfo(dtype) to be either torch.float32 or just float32.
CC: @tfogal

Not really understanding this one. We don't appear to have a lookaside for torch.finfo; should we?

torch.finfo(thunder.dtypes.float32)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[14], line 1
----> 1 torch.finfo(thunder.dtypes.float32)

TypeError: finfo(): argument 'type' (position 1) must be torch.dtype, not floating

likely options:

fix gap in translating thunder dtypes to torch.dtype transparently,
add torch.finfo lookaside

As an aside: Quite likely, it would help debugging these cases if Thunder objects had more Pythonic representations that informed about the fact that they are thunder objects...  (ported over #510 for this)

@athitten to add the full trace.

dropping 'triage review' until the trace comes in, will revisit then.

Repro:
import torch, thunder

def fn(x):
    return torch.finfo(x.dtype).min

a = torch.randn(5, 5)

jfn = thunder.jit(fn)

jfn(a)

Aside from the obvious implementation strategy of implementing finfo: Maybe it would be nice to do a replacement of thunder dtype (and device) to PyTorch when calling opaque functions.

Hello Team! FYI I will be working on this issue. (cc. @t-vi )

Thank you @k223kim

authors: athitten k223kim t-vi tfogal

repo: Lightning-AI/lightning-thunder


text:
Enable symbolic values

Before submitting

[ ] Was this discussed/approved via a Github issue? (no need for typos and docs improvements)
[ ] Did you read the contributor guideline, Pull Request section?
[ ] Did you make sure to update the docs?
[ ] Did you write any new necessary tests?

What does this PR do?
Fixes # (issue).
PR review
Anyone in the community is free to review the PR once the tests have passed.
If we didn't discuss your PR in Github issues there's a high chance it will not be merged.
Did you have fun?
Make sure you had fun coding 🙃

CI cleared here. Let's revert more changes.


text:
DeepSpeed stage 3 and mixed precision cause an error

🐛 Bug
Using strategy="deepspeed_stage_3" and precision=16 causes an error
To Reproduce
import os
import torch
from torch.utils.data import DataLoader, Dataset
from deepspeed.ops.adam import DeepSpeedCPUAdam, FusedAdam
from pytorch_lightning import LightningModule, Trainer

class RandomDataset(Dataset):
    def __init__(self, size, length):
        self.len = length
        self.data = torch.randn(length, size)

    def __getitem__(self, index):
        return self.data[index]

    def __len__(self):
        return self.len

class BoringModel(LightningModule):
    def __init__(self):
        super().__init__()
        self.layer = torch.nn.Linear(32, 2)

    def forward(self, x):
        return self.layer(x)

    def training_step(self, batch, batch_idx):
        loss = self(batch).sum()
        self.log("train_loss", loss)
        return {"loss": loss}

    def validation_step(self, batch, batch_idx):
        loss = self(batch).sum()
        self.log("valid_loss", loss)

    def test_step(self, batch, batch_idx):
        loss = self(batch).sum()
        self.log("test_loss", loss)

    def configure_optimizers(self):
        return FusedAdam(self.layer.parameters(), lr=0.1)
        # return torch.optim.Adam(self.parameters(),lr = .1)

def run():
    train_data = DataLoader(RandomDataset(32, 64), batch_size=2)
    val_data = DataLoader(RandomDataset(32, 64), batch_size=2)
    test_data = DataLoader(RandomDataset(32, 64), batch_size=2)

    model = BoringModel()
    trainer = Trainer(
        default_root_dir=os.getcwd(),
        limit_train_batches=1,
        limit_val_batches=1,
        num_sanity_val_steps=0,
        max_epochs=1,
        enable_model_summary=False,
        logger=False,
        enable_checkpointing=False,
        gpus = 4,
        precision=16,
        strategy = "deepspeed_stage_3"
    )
    trainer.fit(model, train_dataloaders=train_data, val_dataloaders=val_data)
    trainer.test(model, dataloaders=test_data)

if __name__ == "__main__":
    run()

I get the following error:
Traceback (most recent call last):
  File "bug.py", line 69, in <module>
    run()
  File "bug.py", line 64, in run
    trainer.fit(model, train_dataloaders=train_data, val_dataloaders=val_data)
  File "/home/kirill.trapeznikov/miniconda3/envs/semafor_nlg/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 735, in fit
    self._call_and_handle_interrupt(
  File "/home/kirill.trapeznikov/miniconda3/envs/semafor_nlg/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 682, in _call_and_handle_interrupt
    return trainer_fn(*args, **kwargs)
  File "/home/kirill.trapeznikov/miniconda3/envs/semafor_nlg/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 770, in _fit_impl
    self._run(model, ckpt_path=ckpt_path)
  File "/home/kirill.trapeznikov/miniconda3/envs/semafor_nlg/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 1182, in _run
    self._pre_dispatch()
  File "/home/kirill.trapeznikov/miniconda3/envs/semafor_nlg/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 1217, in _pre_dispatch
    self.accelerator.pre_dispatch(self)
  File "/home/kirill.trapeznikov/miniconda3/envs/semafor_nlg/lib/python3.8/site-packages/pytorch_lightning/accelerators/accelerator.py", line 136, in pre_dispatch
    self.training_type_plugin.pre_dispatch()
  File "/home/kirill.trapeznikov/miniconda3/envs/semafor_nlg/lib/python3.8/site-packages/pytorch_lightning/plugins/training_type/deepspeed.py", line 397, in pre_dispatch
    self.init_deepspeed()
  File "/home/kirill.trapeznikov/miniconda3/envs/semafor_nlg/lib/python3.8/site-packages/pytorch_lightning/plugins/training_type/deepspeed.py", line 474, in init_deepspeed
    self._initialize_deepspeed_train(model)
  File "/home/kirill.trapeznikov/miniconda3/envs/semafor_nlg/lib/python3.8/site-packages/pytorch_lightning/plugins/training_type/deepspeed.py", line 507, in _initialize_deepspeed_train
    model, deepspeed_optimizer = self._setup_model_and_optimizer(model, optimizer, scheduler)
  File "/home/kirill.trapeznikov/miniconda3/envs/semafor_nlg/lib/python3.8/site-packages/pytorch_lightning/plugins/training_type/deepspeed.py", line 431, in _setup_model_and_optimizer
    deepspeed_engine, deepspeed_optimizer, _, _ = deepspeed.initialize(
  File "/home/kirill.trapeznikov/miniconda3/envs/semafor_nlg/lib/python3.8/site-packages/deepspeed/__init__.py", line 131, in initialize
    engine = DeepSpeedEngine(args=args,
  File "/home/kirill.trapeznikov/miniconda3/envs/semafor_nlg/lib/python3.8/site-packages/deepspeed/runtime/engine.py", line 223, in __init__
    self._configure_optimizer(optimizer, model_parameters)
  File "/home/kirill.trapeznikov/miniconda3/envs/semafor_nlg/lib/python3.8/site-packages/deepspeed/runtime/engine.py", line 905, in _configure_optimizer
    self.optimizer = self._configure_zero_optimizer(basic_optimizer)
  File "/home/kirill.trapeznikov/miniconda3/envs/semafor_nlg/lib/python3.8/site-packages/deepspeed/runtime/engine.py", line 1152, in _configure_zero_optimizer
    optimizer = FP16_DeepSpeedZeroOptimizer_Stage3(
  File "/home/kirill.trapeznikov/miniconda3/envs/semafor_nlg/lib/python3.8/site-packages/deepspeed/runtime/zero/stage3.py", line 905, in __init__
    self.create_reduce_and_remove_grad_hooks()
  File "/home/kirill.trapeznikov/miniconda3/envs/semafor_nlg/lib/python3.8/site-packages/deepspeed/runtime/zero/stage3.py", line 1885, in create_reduce_and_remove_grad_hooks
    param.all_gather()
  File "/home/kirill.trapeznikov/miniconda3/envs/semafor_nlg/lib/python3.8/site-packages/deepspeed/runtime/zero/partition_parameters.py", line 590, in all_gather
    return self._all_gather(param_list, async_op=async_op, hierarchy=hierarchy)
  File "/home/kirill.trapeznikov/miniconda3/envs/semafor_nlg/lib/python3.8/site-packages/deepspeed/runtime/zero/partition_parameters.py", line 699, in _all_gather
    ret_value = self._allgather_params_coalesced(all_gather_list, hierarchy)
  File "/home/kirill.trapeznikov/miniconda3/envs/semafor_nlg/lib/python3.8/site-packages/deepspeed/runtime/zero/partition_parameters.py", line 947, in _allgather_params_coalesced
    h = dist._all_gather_base(allgather_params[param_idx],
  File "/home/kirill.trapeznikov/miniconda3/envs/semafor_nlg/lib/python3.8/site-packages/torch/distributed/distributed_c10d.py", line 2070, in _all_gather_base
    work = group._allgather_base(output_tensor, input_tensor)
RuntimeError: output tensor must have the same type as input tensor

Expected behavior
it should work, right?
Environment
* CUDA:
        - GPU:
                - GeForce RTX 2080 Ti
                - GeForce RTX 2080 Ti
                - GeForce RTX 2080 Ti
                - GeForce RTX 2080 Ti
                - GeForce RTX 2080 Ti
                - GeForce RTX 2080 Ti
                - GeForce RTX 2080 Ti
                - GeForce RTX 2080 Ti
        - available:         True
        - version:           11.3
* Packages:
        - numpy:             1.21.1
        - pyTorch_debug:     False
        - pyTorch_version:   1.10.0+cu113
        - pytorch-lightning: 1.5.1
        - tqdm:              4.62.0
* System:
        - OS:                Linux
        - architecture:
                - 64bit
                - ELF
        - processor:         x86_64
        - python:            3.8.11
        - version:           #1 SMP Wed Feb 3 15:06:38 UTC 2021

Any other relevant information: deepspeed   0.5.6

Additional context

cc @SeanNaren @awaelchli @rohitgr7

if I change strategy="deepspeed_stage_3_offload" and use DeepSpeedCPUAdam instead then I don't get an error.

stage 2 with and without offload works with fp16

@SeanNaren and @ktrapeznikov, I am taking a look.

Quick update. The problem is that model parameters remained in fp32 despite precision=fp16 in Trainer constructor. @ktrapeznikov, can you please confirm that Runtime error is avoided by
    model = BoringModel().half()

For some reason zero.Init() is not using dtype to change parameter dtypes as promised here. Please give me some time to sync internally to understand this behavior. Thanks!

@SeanNaren, the problem seems to be due to Lightning calling zero.Init() here on an already constructed model. It particularly, zero.Init() is meant for constructing massive models that are too large for a single device. For already constructed models, the stage 3 optimizer will automatically setup the required partitioning as seen here. Hope that helps.

ahhh huge thanks @tjruwase! I recall having this in place because there were some internal deepspeed assertions that were raised if the model was partially partitioned! I've removed the code and have confirmed all tests are passing.
@ktrapeznikov #10655 should fix this issue :)

hey @tjruwase this breaks a case we had in our CI where only some of the parameters have been defined in the deepspeed.Init context, but there are still some parameters stray. Should these be detected/partitioned afterwards by deepspeed?
Here is the reproduce:
import os

import torch
from deepspeed.ops.adam import FusedAdam
from torch.utils.data import DataLoader, Dataset

from pytorch_lightning import LightningModule, Trainer

class RandomDataset(Dataset):
    def __init__(self, size, length):
        self.len = length
        self.data = torch.randn(length, size)

    def __getitem__(self, index):
        return self.data[index]

    def __len__(self):
        return self.len

class BoringModel(LightningModule):
    def __init__(self):
        super().__init__()
        self.layer = torch.nn.Linear(32, 2)

    def forward(self, x):
        return self.layer(x)

    def configure_sharded_model(self) -> None:
        self.layer_2 = torch.nn.Linear(32, 2)

    def training_step(self, batch, batch_idx):
        loss = self(batch).sum()
        self.log("train_loss", loss)
        return {"loss": loss}

    def validation_step(self, batch, batch_idx):
        loss = self(batch).sum()
        self.log("valid_loss", loss)

    def test_step(self, batch, batch_idx):
        loss = self(batch).sum()
        self.log("test_loss", loss)

    def configure_optimizers(self):
        return FusedAdam(self.layer.parameters(), lr=0.1)

def run():
    train_data = DataLoader(RandomDataset(32, 64), batch_size=2)
    val_data = DataLoader(RandomDataset(32, 64), batch_size=2)
    test_data = DataLoader(RandomDataset(32, 64), batch_size=2)

    model = BoringModel()
    trainer = Trainer(
        default_root_dir=os.getcwd(),
        gpus=1,
        fast_dev_run=True,
        precision=16,
        strategy="deepspeed_stage_3"
    )
    trainer.fit(model, train_dataloaders=train_data, val_dataloaders=val_data)
    trainer.test(model, dataloaders=test_data)

if __name__ == "__main__":
    run()

The stacktrace:
Traceback (most recent call last):
  File "reprod.py", line 68, in <module>
    run()
  File "reprod.py", line 63, in run
    trainer.fit(model, train_dataloaders=train_data, val_dataloaders=val_data)
  File "/home/sean/pytorch-lightning/pytorch_lightning/trainer/trainer.py", line 720, in fit
    self._fit_impl, model, train_dataloaders, val_dataloaders, datamodule, ckpt_path
  File "/home/sean/pytorch-lightning/pytorch_lightning/trainer/trainer.py", line 671, in _call_and_handle_interrupt
    return trainer_fn(*args, **kwargs)
  File "/home/sean/pytorch-lightning/pytorch_lightning/trainer/trainer.py", line 754, in _fit_impl
    self._run(model, ckpt_path=ckpt_path)
  File "/home/sean/pytorch-lightning/pytorch_lightning/trainer/trainer.py", line 1145, in _run
    self._pre_dispatch()
  File "/home/sean/pytorch-lightning/pytorch_lightning/trainer/trainer.py", line 1180, in _pre_dispatch
    self.accelerator.pre_dispatch(self)
  File "/home/sean/pytorch-lightning/pytorch_lightning/accelerators/accelerator.py", line 92, in pre_dispatch
    self.training_type_plugin.pre_dispatch()
  File "/home/sean/pytorch-lightning/pytorch_lightning/plugins/training_type/deepspeed.py", line 388, in pre_dispatch
    self.init_deepspeed()
  File "/home/sean/pytorch-lightning/pytorch_lightning/plugins/training_type/deepspeed.py", line 457, in init_deepspeed
    self._initialize_deepspeed_train(model)
  File "/home/sean/pytorch-lightning/pytorch_lightning/plugins/training_type/deepspeed.py", line 490, in _initialize_deepspeed_train
    model, deepspeed_optimizer = self._setup_model_and_optimizer(model, optimizer, scheduler)
  File "/home/sean/pytorch-lightning/pytorch_lightning/plugins/training_type/deepspeed.py", line 429, in _setup_model_and_optimizer
    dist_init_required=False,
  File "/home/sean/anaconda3/lib/python3.7/site-packages/deepspeed/__init__.py", line 129, in initialize
    config_params=config_params)
  File "/home/sean/anaconda3/lib/python3.7/site-packages/deepspeed/runtime/engine.py", line 260, in __init__
    self._configure_distributed_model(model)
  File "/home/sean/anaconda3/lib/python3.7/site-packages/deepspeed/runtime/engine.py", line 977, in _configure_distributed_model
    f"fp16 is enabled but the following parameters have dtype that is not fp16: {', '.join(names)}"
ValueError: fp16 is enabled but the following parameters have dtype that is not fp16: module.layer.weight, module.layer.bias

There is a delay here primarily because of the above (cc @tjruwase)
In the meantime we can bypass this issue by passing the plugin manually and adding the partition_module=False flag:
from pytorch_lightning.plugins import DeepSpeedPlugin
trainer = Trainer(
        default_root_dir=os.getcwd(),
        limit_train_batches=1,
        limit_val_batches=1,
        num_sanity_val_steps=0,
        max_epochs=1,
        enable_model_summary=False,
        logger=False,
        enable_checkpointing=False,
        gpus = 4,
        precision=16,
        strategy = DeepSpeedPlugin(stage=3, offload_parameters=True, offload_optimizers=True, partition_module=False)
    )

I tested microsoft/DeepSpeed#1606 and it seems the error still persists @tjruwase

@chenzhekl, this is likely due to the fact that DeepSpeed does not automatically cast the inputs. Can you please share your full stack trace?

Hi @tjruwase, Thanks for your reply! Here is the stack trace. Hope this can be helpful.
Traceback (most recent call last):
  File "/home/zchen/workspace/demo/src/train.py", line 343, in <module>
    main(args)
  File "/home/zchen/workspace/demo/src/train.py", line 261, in main
    trainer.fit(
  File "/opt/conda/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 770, in fit
    self._call_and_handle_interrupt(
  File "/opt/conda/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 723, in _call_and_handle_interrupt
    return trainer_fn(*args, **kwargs)
  File "/opt/conda/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 811, in _fit_impl
    results = self._run(model, ckpt_path=self.ckpt_path)
  File "/opt/conda/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 1236, in _run
    results = self._run_stage()
  File "/opt/conda/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 1323, in _run_stage
    return self._run_train()
  File "/opt/conda/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 1345, in _run_train
    self._run_sanity_check()
  File "/opt/conda/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 1413, in _run_sanity_check
    val_loop.run()
  File "/opt/conda/lib/python3.8/site-packages/pytorch_lightning/loops/base.py", line 204, in run
    self.advance(*args, **kwargs)
  File "/opt/conda/lib/python3.8/site-packages/pytorch_lightning/loops/dataloader/evaluation_loop.py", line 155, in advance
    dl_outputs = self.epoch_loop.run(self._data_fetcher, dl_max_batches, kwargs)
  File "/opt/conda/lib/python3.8/site-packages/pytorch_lightning/loops/base.py", line 204, in run
    self.advance(*args, **kwargs)
  File "/opt/conda/lib/python3.8/site-packages/pytorch_lightning/loops/epoch/evaluation_epoch_loop.py", line 128, in advance
    output = self._evaluation_step(**kwargs)
  File "/opt/conda/lib/python3.8/site-packages/pytorch_lightning/loops/epoch/evaluation_epoch_loop.py", line 226, in _evaluation_step
    output = self.trainer._call_strategy_hook("validation_step", *kwargs.values())
  File "/opt/conda/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 1765, in _call_strategy_hook
    output = fn(*args, **kwargs)
  File "/opt/conda/lib/python3.8/site-packages/pytorch_lightning/strategies/deepspeed.py", line 906, in validation_step
    return self.model(*args, **kwargs)
  File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1110, in _call_impl
    return forward_call(*input, **kwargs)
  File "/opt/conda/lib/python3.8/site-packages/deepspeed/utils/nvtx.py", line 11, in wrapped_fn
    return func(*args, **kwargs)
  File "/opt/conda/lib/python3.8/site-packages/deepspeed/runtime/engine.py", line 1601, in forward
    loss = self.module(*inputs, **kwargs)
  File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1110, in _call_impl
    return forward_call(*input, **kwargs)
  File "/opt/conda/lib/python3.8/site-packages/pytorch_lightning/strategies/deepspeed.py", line 80, in forward
    return super().forward(*inputs, **kwargs)
  File "/opt/conda/lib/python3.8/site-packages/pytorch_lightning/overrides/base.py", line 93, in forward
    return self.module.validation_step(*inputs, **kwargs)
  File "/home/zchen/workspace/demo/src/model/model.py", line 64, in validation_step
    y_ = self(batch["x"], batch["batch"], batch["pos"], batch["edge_index"])
  File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1110, in _call_impl
    return forward_call(*input, **kwargs)
  File "/home/zchen/workspace/demo/src/model/model.py", line 28, in forward
    features = F.elu(self.features(x, edge_index, pos))
  File "/home/zchen/workspace/demo/src/model/model.py", line 35, in features
    h1 = F.gelu(self.conv1(torch.cat([x, pos], dim=1), edge_index))
  File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1110, in _call_impl
    return forward_call(*input, **kwargs)
  File "/opt/conda/lib/python3.8/site-packages/torch_geometric/nn/conv/gatv2_conv.py", line 200, in forward
    x_l = self.lin_l(x).view(-1, H, C)
  File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1110, in _call_impl
    return forward_call(*input, **kwargs)
  File "/opt/conda/lib/python3.8/site-packages/torch_geometric/nn/dense/linear.py", line 118, in forward
    return F.linear(x, self.weight, self.bias)
RuntimeError: expected scalar type Half but found Float

it'd be great if someone can share a reproducible script to replicate the issue.

@tjruwase Thanks for your suggestions. You are right. After manually casting the input to half, the error message disappears. I guess this might have something to do with PyG`s way of packing data. Here is a small script to reproduce the error.
import os
import torch
import torch.nn.functional as F
from torch.optim import Adam
from pytorch_lightning import LightningModule, Trainer
from torch_geometric.nn import EdgeConv, MLP, knn_graph
from torch_geometric.data import Data, Dataset, DataLoader

class RandomDataset(Dataset):
    def __init__(self, size, length):
        self.len = length
        self.data = Data(
            x=torch.randn(size, 3),
            pos=torch.randn(size, 3),
            y=torch.randn(size, 5),
        )

    def __getitem__(self, index):
        return self.data

    def __len__(self):
        return self.len

class BoringModel(LightningModule):
    def __init__(self):
        super().__init__()
        self.conv1 = EdgeConv(MLP(([2 * 6, 64, 64, 64])))
        self.conv2 = EdgeConv(MLP(([2 * 64, 128])))
        self.lin1 = torch.nn.Linear(64 + 128, 1024)
        self.mlp = MLP([1024, 512, 256, 5], dropout=0.0, batch_norm=False)

    def forward(self, x, batch, pos, edge_index):
        features = F.elu(self.features(x, edge_index, pos))
        pooled_features = nn.global_max_pool(features, batch)
        y = self.mlp(pooled_features)

        return y.sigmoid()

    def features(self, x, edge_index, pos):
        h1 = self.conv1(torch.cat([x, pos], dim=1), edge_index)
        h2 = self.conv2(h1, edge_index)
        h3 = self.lin1(torch.cat([h1, h2], dim=1))

        return h3

    def training_step(self, batch, batch_idx):
        edge_index = knn_graph(batch.pos, k=5, batch=batch.batch)
        y_ = self(batch.x, batch.batch, batch.pos, edge_index)
        loss = F.l1_loss(y_, batch.y)
        self.log("train_loss", loss)
        return {"loss": loss}

    def validation_step(self, batch, batch_idx):
        edge_index = knn_graph(batch.pos, k=5, batch=batch.batch)
        y_ = self(batch.x, batch.batch, batch.pos, edge_index)
        loss = F.l1_loss(y_, batch.y)
        self.log("valid_loss", loss)

    def configure_optimizers(self):
        return Adam(self.parameters(), lr=0.1)

def run():
    train_data = DataLoader(RandomDataset(32, 64), batch_size=2)
    val_data = DataLoader(RandomDataset(32, 64), batch_size=2)

    model = BoringModel()
    trainer = Trainer(
        default_root_dir=os.getcwd(),
        limit_train_batches=1,
        limit_val_batches=1,
        num_sanity_val_steps=0,
        max_epochs=1,
        enable_model_summary=False,
        logger=False,
        enable_checkpointing=False,
        gpus=1,
        precision=16,
        strategy = "deepspeed_stage_3"
    )
    trainer.fit(model, train_dataloaders=train_data, val_dataloaders=val_data)

if __name__ == "__main__":
    run()

I recall running into this before with geometric. I think this is down to the Data object, Lightning cannot automatically traverse the object to move tensors to the correct device. A manual casting may be the cleanest solution currently!

@chenzhekl, thanks for confirming and sharing a repro.
@SeanNaren, thanks for the sharing your experience.

authors: SeanNaren chenzhekl ktrapeznikov rohitgr7 tjruwase

repo: Lightning-AI/lightning


text:
Refactor _SubprocessScriptLauncher process launching strategy

Outline & Motivation
Hi all, firstly thanks for your work on the library, it's great!
Existing code
The _SubprocessScriptLauncher results in a process hierarchy as follows, for N GPUs:
LocalRank=0
├── LocalRank=1
├── LocalRank=2
├── LocalRank=3
├── ...
└── LocalRank=N-1

where LocalRank=0 launches each of LocalRank=1 to LocakRank=N-1 via subprocess.Popen.
Issues
This can make a few things challenging, namely:

Defunct/zombie processes: if any of LocalRank=1 to N-1 fail, then the process enters a zombie state, as LocalRank=0(its parent), never reads the exit code. This means that a container running multi-GPU training will not exit on the failure of a non-zero process until DDP times out. For users where termination leads to freeing of expensive compute resources this is problematic.
Exit code checking: in Unix you can only read exit codes of a process from its parent. As a result, the user cannot read the exit code of LocalRank=1..N-1.
Local rank environment variable: a user can only identify LocalRank=0 from the lack of an environment variable. This makes any code relying on this less robust, especially, if it also runs in CPU-only environments where the environment variable is correctly missing.
Process re-parenting: if LocalRank=0 fails, then LocalRank=1,..,N-1 are assigned to be children of pid=1. This makes cleaning up of processes a bit more challenging.

Proposal
There are two main approaches to rectify this:

Add a thread in LocalRank=0 that checks the status of the remaining processes and tidies up all the processes on a failure. Not sure I like this, however, since the thread isn't strictly speaking guaranteed to execute due to the GIL.
Refactor process structure to be something like

Watcher
├── LocalRank=0
├── LocalRank=1
├── LocalRank=2
├── LocalRank=3
├── ...
└── LocalRank=N-1

where the role of the Watcher process is to
a) launch the processes for each of the local ranks
b) monitor the status of the processes
c) terminate all the local rank processes, upon termination of a single one of them (and exit with the same exit code)
This would address all of the issues above and we could also explicitly set LOCAL_RANK=0 in the zeroth process.
Pitch
I feel that proposal 2. would add some robustness to multi-GPU training, especially in the case described above.
I would be happy to submit a PR that does this either in a new _Launcher implementation or as a refactor of _SubprocessScriptLauncher, if this sounds reasonable. Thanks!
Additional context
No response
cc @awaelchli @justusschock @tchaton @borda @carmocca

Related issues:

https://github.com/Lightning-AI/lightning/issues/9303
https://github.com/Lightning-AI/lightning/issues/2913

@ymohamedahmed I think your concerns are valid, but I'm not sure we should really try to "rebuild" torchrun/torchelastic. I've been thinking for a while that we could eventually replace the implementation in the SubprocessLauncher with a simple call to torchrun. We already do this for the "lightning run model" command in Fabric. WDYT?

Yeah that's fair, totally understand that you don't want to diverge too much here from Torch. AFAIK torchrun wouldn't address the above, but torchelastic might.
Namely the local_elastic_agent, but it's multiprocessing-based so would provide all the headaches of <blah> can't be pickled etc. and thereby wouldn't match the existing _SubprocessScriptLauncher.

In case it helps @awaelchli , DeepSpeed implements the proposal above here so there is prior art!

Hey @ymohamedahmed
Maybe I'm misinformed here but I thought that torchelastic, the previous standalone package, was deprecated and then moved into torch as torchrun. https://pytorch.org/docs/stable/elastic/run.html (elastic launch).
For your proposal under "Defunct/zombie processes", is this the same as #16410 / #16204?
If you feel very confident in these, I would be happy to review a proof of concept as a separate subclass of _Launcher.

Hey @awaelchli, yes you're right, they have been merged!
Re. https://github.com/Lightning-AI/lightning/issues/16410 / https://github.com/Lightning-AI/lightning/pull/16204 - it would achieve a similar outcome, but it wouldn't detect deadlocks and would be more similar to the DeepSpeed approach.
It would be conceptually a bit simpler (i.e. no need to touch files on each rank etc.); it would just use the native functionality in subprocess to check if a process has terminated or not.
I will get back to you with a PoC of what it would look like as a subclass of _Launcher. Thanks 👍

@awaelchli
Something like the following is what I had in mind, largely just copied from the subprocess_script.py with some minor tweaks:

class _ManagedSubprocessScriptLauncher(_Launcher):

     def __init__(self, cluster_environment: ClusterEnvironment, num_processes: int, num_nodes: int, process_sampling_period: float) -> None:
        super().__init__()
        self.cluster_environment = cluster_environment
        self.num_processes = num_processes
        self.num_nodes = num_nodes
        self.procs: List[subprocess.Popen] = []
        self.process_sampling_period = process_sampling_period

    def launch(self, function: Callable, *args: Any, trainer: Optional["pl.Trainer"] = None, **kwargs: Any) -> Any:
        if not self.cluster_environment.creates_processes_externally:
            self._call_children_scripts()

        self._monitor_workers(self.process_sampling_period)

      # Q: what are we supposed to do with `function` here?

    def _call_children_scripts(self) -> None:
        self._check_can_spawn_children()
        self.procs = []  # reset in case it's called twice

        # DDP Environment variables
        os.environ["MASTER_ADDR"] = self.cluster_environment.main_address
        os.environ["MASTER_PORT"] = str(self.cluster_environment.main_port)

        # allow the user to pass the node rank
        os.environ["NODE_RANK"] = str(self.cluster_environment.node_rank())
        os.environ["LOCAL_RANK"] = str(self.cluster_environment.local_rank())
        os.environ["WORLD_SIZE"] = f"{self.num_processes * self.num_nodes}"

        for local_rank in range(self.num_processes): # CHANGE
            env_copy = os.environ.copy()
            env_copy["LOCAL_RANK"] = f"{local_rank}"

            # remove env var if global seed not set
            if os.environ.get("PL_GLOBAL_SEED") is None and "PL_GLOBAL_SEED" in env_copy:
                del env_copy["PL_GLOBAL_SEED"]

            hydra_in_use = False
            cwd: Optional[str] = None
            if _HYDRA_AVAILABLE:
                from hydra.core.hydra_config import HydraConfig

                hydra_in_use = HydraConfig.initialized()

            if hydra_in_use:
                command, cwd = _hydra_subprocess_cmd(local_rank)
            else:
                command = _basic_subprocess_cmd()

            new_process = subprocess.Popen(command, env=env_copy, cwd=cwd)
            self.procs.append(new_process)

    def _monitor_processes(self, sampling_period: float) -> None:
        living_processes = set(self.procs)
        while len(living_processes):
            if process.poll() is not None:
                # process had died
                living_processes.remove(process)
                if process.returncode != 0:
                    self.kill(signal.SIGTERM, process.returncode)
        time.sleep(sampling_period)

    def kill(self, signum: _SIGNUM, exitcode: int) -> None:
        for proc in self.procs:
            log.info(f"pid {os.getpid()} killing {proc.pid} with {signum}")
            # this skips subprocesses already terminated
            proc.send_signal(signum)
        sys.exit(exitcode)

Notice that _monitor_processes won't return until either a worker fails or all processes terminate successfully.
I'm not sure I totally understand how we should behave wrt to the function arg passed into launch in this case.
If we launch the script, will it get called on LOCAL_RANK=0 anyway?
Let me know if that makes sense. If so, will raise a proper PR with tests + docs ⚡ :grin:

Hey
Our launcher only creates N-1 new processes. The main process who creates these processes then also participates in training. So in total there are only ever N processes. The main process can't block - it can't run _monitor_processes in a blocking way otherwise the other N-1 processes will all wait and the program stalls.
The design here is very intentional and I'm pretty sure we don't want to change this. Having exactly N processes all in sync is easy to reason about and makes transferring/broadcasting state straightforward. The user does not need to distinguish between a special main process and worker processes.
I think you'll have to find a different way of monitoring the processes. You could perhaps use a Thread that runs alongside all the worker processes.

Regarding using torchrun, we could also replace/refactor our launchers to use the torch.distributed.elastic APIs as much as possible, which will give us all their features that we haven't implemented for free but still not do a black-box call to torchrun

Hey both,
@awaelchli I thought launcher.launch was called once per process, in which case the above would work as long as I added something like
if os.environ.get("LOCAL_RANK") is None:
  self._monitor_workers(sampling_period)
else:
  function(blah)

in the launch function. Then the blocking function call wouldn’t be a problem?
Please correct me if I'm wrong. FWIW torch.multiprocessing uses N+1 processes as well in order to resolve the aforementioned issues.
Using N processes with a thread per process is possible but more complicated. Mostly because we can't distinguish between a successfully terminated process and a failed process (since only the parent can read the exit code of a process in UNIX). As a result, we would need to include an additional mechanism to avoid terminating all the processes prematurely if a single process succeeds.
Something like,
command = command + f"&& /tmp/succeeded/{local_rank}"
subprocess.Popen(command, ...)

which would touch the above file IFF the worker has succeeded. In each thread, of which there would be N, the thread checks that for each other process either it's running or the above file exists. If that condition is not satisfied, it triggers an exit. You could also use such a mechanism to communicate particular exit codes if that's desirable for users.
IMHO this becomes more complicated than the N+1 process mechanism which would largely not be of any concern for the users. I disagree that it would complicate broadcasting state, especially since this is already used by deepspeed and torch.multiprocessing successfully!  Further this allows us to use native psutil/OS functionality rather than having to use files. Just my two cents though! :grin:
@carmocca I think it's great that Lightning provides a DDP launching mechanism that doesn't rely on Python multiprocessing. I think most of the distributed.elastic API is geared towards torch.multiprocessing which some users may find problematic (hence DDPStrategy being the default!) I'll have to take another look at the elastic API though :smile:

Hey both,
@awaelchli I thought launcher.launch was called once per process, in which case the above would work as long as I added something like
if os.environ.get("LOCAL_RANK") is None:
  self._monitor_workers(sampling_period)
else:
  function(blah)

in the launch function. Then the blocking function call wouldn’t be a problem?
Please correct me if I'm wrong. FWIW torch.multiprocessing uses N+1 processes as well in order to resolve the aforementioned issues.
Using N processes with a thread per process is possible but more complicated. Mostly because we can't distinguish between a successfully terminated process and a failed process (since only the parent can read the exit code of a process in UNIX). As a result, we would need to include an additional mechanism to avoid terminating all the processes prematurely if a single process succeeds.
Something like,
command = command + f"&& /tmp/succeeded/{local_rank}"
subprocess.Popen(command, ...)

which would touch the above file IFF the worker has succeeded. In each thread, of which there would be N, the thread checks that for each other process either it's running or the above file exists. If that condition is not satisfied, it triggers an exit. You could also use such a mechanism to communicate particular exit codes if that's desirable for users.
IMHO this becomes more complicated than the N+1 process mechanism which would largely not be of any concern for the users. I disagree that it would complicate broadcasting state, especially since this is already used by deepspeed and torch.multiprocessing successfully!  Further this allows us to use native psutil/OS functionality rather than having to use files. Just my two cents though! :grin:
@carmocca I think it's great that Lightning provides a DDP launching mechanism that doesn't rely on Python multiprocessing. I think most of the distributed.elastic API is geared towards torch.multiprocessing which some users may find problematic (hence DDPStrategy being the default!) I'll have to take another look at the elastic API though :smile:

Just ran into this issue when trying to setup DistributedSampler myself. This fails on LocalRank=0 with RuntimeError: Default process group has not been initialized, please make sure to call init_process_group., but likely succeeds on LocalRank=1 where the setup has been done.
I like proposal 2, or better yet integrate torchrun which has quickly become the standard.

authors: awaelchli carmocca tbenst ymohamedahmed


text:
New arg: compute_with_cache

What does this PR do?
Fixes #1738
Adds a new global arg compute_with_cache, that determines if the result from compute should be stored in a cache or not. By default it is True to be backwards compatible, but in some use cases (see the issue) it is beneficial to set this to False to essentially help the python garbage collector better clean up memory.

Before submitting

[ ] Was this discussed/agreed via a Github issue? (no need for typos and docs improvements)
[ ] Did you read the contributor guideline, Pull Request section?
[ ] Did you make sure to update the docs?
[ ] Did you write any new necessary tests?

PR review
Anyone in the community is free to review the PR once the tests have passed.
If we didn't discuss your PR in Github issues there's a high chance it will not be merged.

Did you have fun?
Make sure you had fun coding 🙃

I am in favor of not introduce this argument.
Yes, we have this one caching issue with memory leakage due to python garbage collection (https://github.com/Lightning-AI/torchmetrics/issues/1738) . I am in favor of just removing the caching of output values and simply compute if .compue is called. This is extremely straight forward and actually the expected way IMO (I get that it's nice saving time by avoiding recomputes, but IMO this would be up to the user to do by caching the value themselves if they want to reuse it).
Other opinions?
cc @lantiga @Borda for visibility

cc: @lantiga ^^ :flamingo:

authors: Borda SkafteNicki justusschock

repo: Lightning-AI/torchmetrics


text:
Automate test & release via GitHub Actions

Automate Releases via GitHub Actions

From master branch: beta
From alpha branch: alpha
When a GitHub release is created: Git tag selected for the release.

Run tests during Pull Request checks

Will need NPM_TOKEN to be set to work

Merging this. Will set the NPM token later! Thanks @nvuillam

@junners i've been unable to test it on alpha branch , so it won't break anything but i can't garantee it won't need another PR ^^

authors: junners nvuillam


text:
História: Integração com contas bancárias

Relacionado ao épico: #7
Como: Usuário
Eu gostaria de: conectar minhas contas bancárias ao aplicativo
De forma que: as informações financeiras sejam carregadas automaticamente, sem que eu tenha que inserir manualmente.
Critérios de aceitação:

O sistema deve permitir a sincronização segura com contas bancárias.

As transações bancárias devem ser exibidas em tempo real, incluindo saldos e movimentações.

Arrojados! Descobriram como fazer isso? =P

Os critérios de aceite tem dois RNF, o que é bom! Mas e quanto à funcionalidade, qual o critério para saber se está correto?

repo: Lima-Almeida/PlataformaFin


text:
🛑 Siyntra Yggdrasil Multiplayer Session Service is down

In de4a631, Siyntra Yggdrasil Multiplayer Session Service (https://auth.siyntrastudios.com/session) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Siyntra Yggdrasil Multiplayer Session Service is back up in 7cf6c29 after 7 minutes.

repo: Limbo-Studios/siyntra-status-page


text:
Added output param to all cli commands except coverage

Resolves #53 Add parameter to remove the verboseness of the deploy API command

Codecov Report

Merging #80 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff          @@
##           master    #80   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files          17     17
  Lines         306    308    +2
=====================================
+ Hits          306    308    +2

Impacted Files
Coverage Δ

deployed-contract/etherlime-ganache-wrapper.js
100% <100%> (ø)
:arrow_up:

deployed-contract/deployed-contract-wrapper.js
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 31383da...59952a4. Read the comment docs.

authors: VladislavIvanov codecov-io

repo: LimeChain/etherlime


text:
🛑 Towny 3 is down

In 1035bb1, Towny 3 ($SERVER_2) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Towny 3 is back up in 894fe9c.

repo: LimeNetwork/limestatus


text:
🛑 SearXNG is down

In 81a503b, SearXNG (https://searxng.linerly.tk) was down:

HTTP code: 0
Response time: 0 ms

Resolved: SearXNG is back up in 701e39d.

repo: Linerly/status


text:
RuntimeError: Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor) should be the same

请问为什么会出现这个问题，感谢。

应该是你的模型没有加载到CUDA上导致你可以检查一下模型加载和数据加载的程序看看。

authors: Linfeng-Tang cheeenzq

repo: Linfeng-Tang/SeAFusion


text:
About the splits of train/val/test

Hi, thank you for your work. I was wondering how to split the dataset (which is https://github.com/Lingzhi-WANG/Datasets-for-Quotation-Recommendation) into train.json, test.json and valid.json. And how do you generate the '_quote_3dicts.json' in your code for the two of them. Could you please share the scripts?
Looking forward to your reply.

Thanks for your question. You can randomly split the datasets into 80%, 10%, and 10%, for training, valid and test. We only used the self.quote_dic from "_quote_3dicts.json". The self.quote_dic is a simple dictionary, where the key is "the string of quotation" and the value is its label. For example,
{"History will have to record that the greatest tragedy of this period of social transition was not the strident clamor of the bad people, but the appalling silence of the good people.": 998, "It's not that I'm so smart, it's just that I stay with problems longer.": 603, "Perfection is not attainable, but if we chase perfection we can catch excellence.": 909, "The whole problem with the world is that fools and fanatics are always so certain of themselves, and wiser people so full of doubts.": 270, ...}
If you have any more questions, feel free to propose.

Thank you for your reply. I now know how to generate the train/val/test data, which I found in your another paper( Continuity of Topic, Interaction, and Query: Learning to Quote in Online Conversations) by afternoon, but for that example you mentioned, I'm still confused. I didn't found any data like "quotation string: label", does this mean that the dataset(https://github.com/Lingzhi-WANG/Datasets-for-Quotation-Recommendation) has been processed? or you label the data manually?  I'm new to this field, sorry for my amateur questions.

The label is to identify a quotation, which also means the label is not made manually. You can assign any unique label or index for each quotation.

I see, thank you! That really help me a lot.

authors: Lingzhi-WANG LuXuff

repo: Lingzhi-WANG/Quotation-Recommendation


text:
Make dependencies check optional

Hi,
I need to be able to disable checking for dependencies.  This patch keeps the current default of checking them automatically.

About the why.  I've written an ebuild for Gentoo.  Automagical dependencies are quite frowned upon in the Gentoo community, mostly because with the same ebuild and the same USE flags users may obtain different results if they happen to have some apparently unrelated dependencies installed or not.  Adding all dependencies unconditionally is not ok, if I make fastfetch depend on X or GNOME it cannot be used on minimal (maybe headless) installations.  So I need a way to disable a test if the user does not enable a certain USE flag, even if the corresponding dependency is actually present on that system.
You can see the old ebuild and the new ebuild here:
https://gitweb.gentoo.org/repo/proj/guru.git/tree/app-misc/fastfetch/fastfetch-0.569.ebuild?id=d85485e0f12f38fa8f06f15e3859b56f9b03f4c7
https://gitweb.gentoo.org/repo/proj/guru.git/tree/app-misc/fastfetch/fastfetch-0.569-r1.ebuild?h=dev&id=61a59bd4bd8f1bc7dd41dc0bff153c866d9ddb53
The second one looks nicer :)

Also because Gentoo does not support version numbers that start with r, I set the version to 0.569 for r569.

I see you merged it, thank you

So maybe this is where gentoo and arch defers. In arch those dependencies are listed as "make dependencies", so they are automatically installed during build time and automatically uninstalled afterwards. That is why fastfetch checks at runtime, if a library is available.

authors: LinusDierheimer ceamac

repo: LinusDierheimer/fastfetch


text:
🛑 Storage Box is down

In 7bcb7b1, Storage Box (https://$MCLOUD_SERVER_IP) was down:

HTTP code: 200
Response time: 496 ms

Resolved: Storage Box is back up in 6b78525 after 5 minutes.


text:
🛑 BIR is down

In faf2def, BIR (https://bir.flitswallet.app/api) was down:

HTTP code: 0
Response time: 0 ms

Resolved: BIR is back up in 9f9899d.


text:
希望增加安全删除表内数据的功能

DataSupport.deleteAll(XXX.class) 这个方法当表的数据量过大时会发生sql语句过长的错误，希望郭神的新增个安全删除表内数据的功能，比如删除这个表后再新增这个表？

感谢反馈，已确认是个bug，我会在下个版本中修复掉。

此bug已经1.6.1版本中修复。

repo: LitePalFramework/LitePal


text:
Configuration singleton causes problem after class reloading

For faster development, I am using hot class reloading instead of full JVM restart. Also, I am using tons of custom serializers to make structure friendlier to the MongoDB. The problem is, after each class reload, currently assigned mixins and modules doesn't work with newly loaded classes. So, I am adding new modules each time. Apparently, count of modules and mixins is increasing dramatically.
However, I suppose there could be more cases it will not play nicely. My suggestion should be backward compatible:
inteface KMongoCodecConfig {
  val bsonMapper: ObjectMapper
  val extendedJsonMapper: ObjectMapper
  val bsonMapperCopy: ObjectMapper
}

object KMongoConfiguration: KMongoCodecConfig {
  //nothing changes
}

fun codecConfig(dsl: KMongoCodecConfigurator.() -> Unit): KMongoCodecConfig {
  // ....
}

object KMongo {
  fun createClient(addr: ServerAddress, options: MongoClientOptions, codecConfig: KMongoCodecConfig = KMongoConfiguration) {
    ....
  }
  //other methods should be adapted as well
}

Usage example:
val projectCodecConfig = codecConfig {
  addModule(VeryNeededModule())
}
KMongo.createClient(codecConfig = projectCodecConfig)

There are tons of other way to do that. Considering singleton is bad design in general, maybe would be acceptable to remove singleton in next major release?

By the way there is a memory leak fixed in 3.8.3

Thanks for fixing this! I will test it soon

authors: neworld zigzago

repo: Litote/kmongo


text:
[BUG] error: package com.llamalad7.mixinextras.injector.wrapoperation does not exist

Enviroment: multiloader 1.20.1 (https://github.com/jaredlll08/MultiLoader-Template/tree/1.20.1)
I add this lib like what README.md said:
compileOnly(annotationProcessor("io.github.llamalad7:mixinextras-common:0.4.1"))
    implementation(jarJar("io.github.llamalad7:mixinextras-forge:0.4.1")) {
        jarJar.ranged(it, "[0.4.1,)")
    }

No error when running in dev env.
But will get error when build:
error: package com.llamalad7.mixinextras.injector.wrapoperation does not exist
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
                                                       ^

Please provide a git repository so I can reproduce

Please provide a git repository so I can reproduce

You can use this https://github.com/FaeWulf/Diversity/tree/1.20.1

The issue is due to mixinextras not being present on your test classpath. You can either add mixinextras to testCompileOnly as well as compileOnly, or you can add it to implementation instead.


text:
🛑 invest is down

In a7a5dca, invest (https://blog-pos-17/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: invest is back up in ab2f261.

repo: LloydGain/UppTIME


text:
请问怎样访问自己相册专辑页面时的Cookies？我用的mac上的Safari浏览器

搜了一下Safari的cookies在~/Library/Cookies下，结果也没有找到微博的cookies
是否能解答一下，非常感谢

是通过抓包获取的，Safari貌似在开发-Web检查器里可以看到Cookies。
如果用Chrome可以在开发者工具中直接抓包获取。
具体粘贴的Cookies格式大致为：
login_sid_t=****; _s_tentry=**; Apache=***; SINAGLOBAL=***; ULV=***; un=***; ....;

好的，已搞定。多谢了！

repo: Lodour/Weibo-Album-Crawler


text:
🛑 LogSentinel SIEM API is down

In 9dc50e2, LogSentinel SIEM API (https://api.logsentinel.com) was down:

HTTP code: 502
Response time: 339 ms

Resolved: LogSentinel SIEM API is back up in 7b41474 after 10 minutes.

repo: LogSentinel/status


text:
[WORKAROUND AVAILABLE] Crash when dragging prefab back into scene after just removing it from scene

Realtime CSG gets confused somehow when removing a prefab and then putting it back.
And this causes a crash.
A workaround, until a fix is available, is to rebuild the scene before you drag the prefab back into the scene.

In version 1.300, which is on the asset store, the crash has been fixed.
This ticket will be closed when it's available on the asset store

Fix is in the version that's on the asset store now, so closing ticket

repo: LogicalError/realtime-CSG-for-unity


text:
Refactored to improve readability.

Removed code duplications.
List of bindings is sorted alphabetically.

This is probably going to take a while to review and test to make sure it doesn't break anything.

?As there were no unit tests, I hope I haven't broken anything, however it will definitely be important to re-test it. We are using the code on our servers so hopefully the potential bugs will be identified quickly. The code is still far from being perfect but it should be way easier to extract methods to separate class and mock out the logger and console. I would like to get rid of that static members in Program.cs but I haven't touched them yet as the code base was quite new for me and I didn't want to affect the stability too much, so I will do the rest later if you review the current version and decide to accept the pull request.

Od: Robert Kerber notifications@github.com
Odesláno: 30. června 2016 17:58
Komu: Lone-Coder/letsencrypt-win-simple
Kopie: Webkomplet, Ing. Jan Pukovec; Author
Předmět: Re: [Lone-Coder/letsencrypt-win-simple] Refactored to improve readability. (#246)
This is probably going to take a while to review and test to make sure it doesn't break anything.

You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/Lone-Coder/letsencrypt-win-simple/pull/246#issuecomment-229704006, or mute the threadhttps://github.com/notifications/unsubscribe/ABbiJqOr0OEx3JwgIf90LcFs16KbLeb_ks5qQ-eMgaJpZM4JBYTP.

I haven't had time to do real in-depth testing, but i'll merge it in anyway.

authors: pukovec rkerber

repo: Lone-Coder/letsencrypt-win-simple


text:
🛑 sggu is down

In e442a75, sggu ($SGGU) was down:

HTTP code: 0
Response time: 0 ms

Resolved: sggu is back up in 1142e0c.

repo: LonelyJupiter/UPPTIME


text:
🛑 jpvir is down

In 796e0bd, jpvir ($JPVIR) was down:

HTTP code: 0
Response time: 0 ms

Resolved: jpvir is back up in f9914b3.


text:
Example node-red??

Is it possible to put some example node-red flows in this github item? I've got a connection with the Growatt server, but the payload stays empty. A example flow with some commands will help a lot

would also like help here.. i am no coder would be great to have an example to use this to get for example e-Today and how that can be made available to HomeBridge. Thanks!

I added the example.json to the project. This loads the data from the Growatt API as soon as the inject node is activated and prints it to the debug output. How to extract the data from the json and how to use it depends on yourself.


text:
Feature: Workplace Hazards

Content
Adds Workplace Hazards to the game.
Examples are:
New types of damage

[ ] Damage when caught between cogs (damage depending on SU?)
[ ] Wall belts fling entities around
[ ] Mechanical presses damages entities below

Pipe pressure system

[ ] Pressure in breakable pipes with jet of leaking fluid damaging entities
[ ] safety valves for boilers to lower pressure in pipes

Contributors

Dev - rdh
Dev - Pouffy
Dev - Sascha_T
Dev - [Add more information]
Artist - [Add more information]

its official. Change the description however u want

Oh no

Oh YES

Should the press crushing effect be applied on tryProcessInWorld/tryProcessOnBelt?
Insta-kill or not, and if not, what form should it take? Suffocation during a certain height range of the press animation?
Can we clarify?

Would be nice if it would already press whenever it detects an Entity.

Would be nice if it would already press whenever it detects an Entity.
🫡

it is a bit aggressive and will crush you if you are even slightly in range, we may choose to reduce damage for people not completely inside or reduce the AABB on the entity detector
but first, we should obviously make the press capable of forcing players into a crouching/crawling position, right? :)

With the press damage source, make it damage helmets specifically. also the speed should relate to the damage.

wouldnt SU for the entity damage make more sense tho?

wouldnt SU for the entity damage make more sense tho?

true + send a formula

wouldnt SU for the entity damage make more sense tho?

Yes but if a mechanical press slams down on your head at 256rpm that would likely deal more damage than it slowly pressing down at 16rpm

wouldnt SU for the entity damage make more sense tho?

Yes but if a mechanical press slams down on your head at 256rpm that would likely deal more damage than it slowly pressing down at 16rpm
if it had enough pressure to kill you, the speed doesnt matter is the argument ig?

I feel like if it's getting crushed by a fast moving component the damage should be instant and large, but if is is slow the damage should be more spread out (kinda like crushing wheels). The pressure would still damage you but the speed makes the death faster.

I committed my additions for the day to the feat/workplace-hazards branch.
I'll get back to discussing and considering that spread-out damage mechanic with you tommorow (or you can just mess up everything, write it yourself and push it in overnight while I'm asleep :p, you choose)

flingy belts exist now as of 0d860fe

cog crushing is so incredibly scuffed :(

scuffed but done

Players should be able to fall down chutes

extra fall damage if the chute uses one of those horizontal connectoin chutes

Players should be able to fall down chutes

How are they supposed to be handled if there are the diagonal chutes?

@JR1811

Players should be able to fall down chutes

How are they supposed to be handled if there are the diagonal chutes?

as I said, extra fall damage, but they continue falling till they hit the end the the chute

as I said, extra fall damage, but they continue falling till they hit the end the the chute

I rly feel like they should get damaged instantly when they bang their head against the metal and keep their normal fall damage handling ngl xD

authors: CodedKyoko JR1811 Sascha-T pouffy

repo: LopyLuna/Create-Calamity


text:
SerializeObject

Hello,
Just real quick i love the project, nice job.
I'm attempting to JsonConvert.SerializeObject a List of type "TMDbLib.Objects.Movies.Movie", but whenever i try to do so i get this error: System.NotImplementedException: 'The method or operation is not implemented.'.
Is there some way to do this in the library without me having to write it out or am i doing something wrong?

Hi!
I just tested it myself and was able to serialize a list of Movie objects. It seems that issue is somehow on your end.
Are you using the latest version?

@alxbrn you're probably running an old version. The converters we had were previously read-only, so serializing yourself would invoke the not implemented exception.

I attempted the same code with the latest "alpha" and everything worked fine.

authors: FrederikBolding LordMike alxbrn

repo: LordMike/TMDbLib


text:
🛑 Link Shortener is down

In 4216eee, Link Shortener (https://lr-link.vercel.app) was down:

HTTP code: 504
Response time: 10868 ms

Resolved: Link Shortener is back up in ca22d58.

repo: LordRonz/status


text:
🛑 Ronz AMOGUS Bot is down

In 214ae67, Ronz AMOGUS Bot ($RONZAMOGUS_BOT_URL) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Ronz AMOGUS Bot is back up in 58949df.


text:
gt_portion是什么参数

运行python eval4test.py -m wikim -d wikim -r 5 -a 0.4时出错了

gt_portion是调整使用gt集合的何种比例来参与训练的参数。对应论文中的图4.
对于一般实验，建议把命令行调整为
python eval4test.py -m wikim -d wikim -r 5 -a 0.4 -gt_portion 1
即可
很抱歉我暂时没有调试代码和上传的条件，待开发环境允许后会修改代码版本。
期待你的复现和反馈。

authors: Los-Phoenix guoli-afk

repo: Los-Phoenix/NFETC-FCLC


text:
rss研究

相关的工具：网站或者app
rss的实现

意义不大，兴趣点变弱

[ ] 优化 rss 中的图片链接
[ ] 丰富更多字段，例如：分类标签等
[ ] 通过 rss 订阅前端相关优秀资讯

FixIt 主题完成 RSS 渲染

repo: Lruihao/hugo-blog


text:
Support URL API

I think get function should returns different values in case of error and empty value.
So for empty value all get_xxx function return curl.null value in case of thre no such part in URL.
Also I do not support table like access to parts because there exists flags to set/get operation.

Coverage decreased (-37.7%) to 25.764% when pulling 8046514220a2aebb98e5883c5965b8051a56e874 on moteus:url_api into b4d1d7921e5a7ea72fb54ef3a6402210a9d23310 on Lua-cURL:master.

authors: coveralls moteus


text:
Add PostgreSQL JDBC Driver as Maven Dependency

Adding the PostgreSQL JDBC driver as a Maven dependency aligns with best practices and will contribute to making our project more efficient and easier to maintain. This step ensures that we follow established standards for dependency management, promoting consistency and enhancing overall project robustness.

I'm holding off on submitting the pull request because I'm a bit confused. Is PostgreSQL downloaded within the Docker image?

I tried to use the docker but it did not work for me. I still have to add the dependency or the driver + datasource in the standalone- full.xml. I am not sure if I did something wrong
Sent from Outlook for Androidhttps://aka.ms/AAb9ysg

From: Marcus Olsson @.>
Sent: Thursday, March 7, 2024 11:42:39 PM
To: Lucia560/Jakarta_labb @.>
Cc: Subscribed @.***>
Subject: Re: [Lucia560/Jakarta_labb] Add PostgreSQL JDBC Driver as Maven Dependency (Issue #65)
I'm holding off on submitting the pull request because I'm a bit confused. Is PostgreSQL downloaded within the Docker image?
—
Reply to this email directly, view it on GitHubhttps://github.com/Lucia560/Jakarta_labb/issues/65#issuecomment-1984686186, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BCDUYB5C7N5IM2Q4PD6GMFDYXDUN7AVCNFSM6AAAAABELZHA26VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOBUGY4DMMJYGY.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

This is my error  if I use the commands in READ.me


text:
其他一切正常Heimdall 502

root特权容器
部署在国外vps上不存在网络问题

忘记下载config了


text:
Bella Vista NSW 2153 North Rocks NSW 2151 ??

Any chance you could also add Bella Vista NSW 2153 and North Rocks NSW 2151 ??

Bella Vista: https://lukeprior.github.io/nbn-upgrade-map/?suburb=bella-vista&state=NSW

Done.

authors: LukePrior peter-mc

repo: LukePrior/nbn-upgrade-map


text:
added chicken tikka masala

Great recipe. Could you convert min to an hour or vice versa for all of the units, I think a standardized time unit is better.

Varying denominations of time is the standard, can't think of a good reason to write 240 minutes instead of 4 hours.
Good recipe though, should merge PR.

Great recipe. Could you convert min to an hour or vice versa for all of the units, I think a standardized time unit is better.

Varying denominations of time is the standard, can't think of a good reason to write 240 minutes instead of 4 hours.
Good recipe though, should merge PR.

That's what I thought as well. I feel like most people would prefer 30 minutes to .5 hours etc.

Great recipe. Could you convert min to an hour or vice versa for all of the units, I think a standardized time unit is better.

Varying denominations of time is the standard, can't think of a good reason to write 240 minutes instead of 4 hours.
Good recipe though, should merge PR.

Actually I just realized that it shouldn't give a total cooking time of 4.25 hours...that is a bit weird. It should be just 4 hours cooking. I'll make the change.

authors: aaronbjohnson hmccarty

license: Unlicense


text:
Center contributions and/or coefficients for (l,m)=(0,0) disagree with librascal and pyLODE

While experimenting with the notebook
https://github.com/ceriottm/lode/blob/main/notebooks/librascal_comparison.ipynb
that compares the spherical expansion coefficients between librascal, rascaline and pyLODE with each other and also analytical results, I discovered two issues that both seem to be related to the way the center atom contribution is treated in the implementation:

If the input frame only contains a single atom, rascaline does not compute any coefficients (the array containing the values has size 0, for all spherical_harmonics_l including 0), while in reality, even the Gaussian density of the center atom should contribute to the coefficients unless the center_atom_weight is set to zero

The coefficients between librascal, rascaline and pyLODE agree for all values of (l,m) (in the case of librascal: up to a global factor) for generic molecules except for (l,m)=(0,0). For this case, pyLODE and librascal both agree, while rascaline is an outlier. Since all other coefficients agree and (l,m)=(0,0) is the only angular channel for which the center atom has a nonzero contribution, I would assume that this is related to the implementation of the center atom contribution as well. (Reference: last cell in the notebook above)

Should be fixed by #91!

authors: Luthaf kvhuguenin

repo: Luthaf/rascaline


text:
🛑 EnderChest（末影箱-云盘） is down

In 8df0171, EnderChest（末影箱-云盘） (https://enderchest.anavi.cn) was down:

HTTP code: 0
Response time: 0 ms

Resolved: EnderChest（末影箱-云盘） is back up in 19aa736 after 5 minutes.

repo: LxnChan/status


text:
🛑 Official（泠泫凝的异次元空间-主页） is down

In d693ec2, Official（泠泫凝的异次元空间-主页） (https://lxnchan.cn) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Official（泠泫凝的异次元空间-主页） is back up in dbb064c after 5 minutes.


text:
🛑 sspanel is down

In f4c8bf3, sspanel (https://ss.168167.xyz) was down:

HTTP code: 525
Response time: 3447 ms

Resolved: sspanel is back up in 7728136 after 4 hours, 29 minutes.


text:
[Bug]: Not receiving otp during signin

Is there an existing issue for this?

[X] I have searched the existing issues

Describe the bug
Not receiving otp during signin
Expected behavior
receive otp
Add ScreenShots

On which device are you experiencing this bug?
No response
Record

[X] I have read the Contributing Guidelines
[X] I'm a GSSOC'24 contributor
[X] I have starred the repository

I want to resolve the issue, kindly assign me the task

authors: jennifereunice malvika-sinha


text:
添加docker网络数据的路由

WIP don't merge

https://github.com/MCSManager/Daemon/pull/10

https://github.com/MCSManager/UI/pull/18

可以合并了
请三个pr一起合并

#549

repo: MCSManager/MCSManager


text:
New users have blank profiles

Tester (if different from issue creator): Anne, Bonnie
Site: MLA Commons, HC
URL: https://mla.hcommons-dev.org/members/hctester40/
Test Account: Ferdinand Test / Any new account
Area (CORE, sites, profiles, groups, general): profiles
If issue discovered on dev, does it also exist on prod? No
Describe the issue
Ferdinand Test profile is missing fields; doesn't appear in list of members on directory. Any new user has blank profile, in both view and edit.
To Reproduce
Steps to reproduce the behavior:

Enroll a new user
Visit their profile. It is blank.
Edit their profile. No fields appear.
Save the profile.
Fields now appear and profile is no longer blank.

Expected behavior
When a new user creates a profile, viewing the profile should show academic interests, but be otherwise blank. When user clicks edit, they should see fields to update.
Screenshots

TLDR: I believe the issue is linked to the enrollment problem we've been seeing elsewhere, and fixing that problem would fix this problem. However, we can fix this problem without fixing that problem, and probably should.
Longer version:
To loop through profile fields for view or edit, the _hcmp_do_with_field_in_loop function is called:
function _hcmp_do_with_field_in_loop( $field_name = '', $callback ) {
	$args = [
		'hide_empty_fields' => false, // Some custom field types are "empty" by design e.g. 'CORE Deposits'.
	];

	if ( bp_has_profile( $args ) ) {
		while ( bp_profile_groups() ) {
			bp_the_profile_group();

			if ( bp_profile_group_has_fields() ) {
				while ( bp_profile_fields() ) {
					bp_the_profile_field();

					if ( bp_get_the_profile_field_name() === $field_name ) {
						return call_user_func( $callback );
					}
				}
			}
		}
	}
}

The inner while loop is gated by if ( bp_profile_group_has_fields() ), which is unnecessary since the while loop won't run if bp_profile_fields() returns no fields to iterate over. Further, bp_profile_group_has_fields() doesn't do what it says it does. It returns true only if there are fields with data. bp_profile_fields() loops over all fields, regardless of whether they have data. When a new user enrolls on prod, there is one field with data: the name field, which is their WordPress username. When a new user enrolls on dev, the name field is empty, and so there are no fields with data, and so the while loop never runs, even though there are fields to iterate over.
If the if ( bp_profile_group_has_fields() ) is removed, then the profile displays and can be edited as on dev just as on prod.
Since this clause is unnecessary and is causing a major issue on dev, I think we should just remove it even though the issue will probably go away when the enrollment issue is solved.

repo: MESH-Research/commons


text:
Treat runs with running containers and not-started setup as inactive

In #617, I changed Vivaria's runs_v table to treat runs as queued, even if their container was running, as long as their setup state was NOT_STARTED. However, I neglected to change the runs_v query to stop counting these runs as active for the purposes of calculating whether the run's batch was over its concurrency limit. This led to a bug where runs would get to setupState = STARTING_AGENT_CONTAINER, Vivaria would start agent containers for them, Vivaria would restart, the background process runner would put the runs back in setupState = NOT_STARTED, but Vivaria would continue counting the run towards batch concurrency limits. In one case this resulted in a batch that could make no progress because all its runs were concurrency-limited, even though none of its runs were actually running.
This PR fixes the bug by changing runs_v not to treat runs with running agent containers as running unless their setup state is also COMPLETED. If the run's setup state is NOT_STARTED or FAILED, even if its agent container is running, the run is not really running and shouldn't count towards batch concurrency limits.
Testing:

regression test added. I've checked that the regression test fails without the migration (because the first run created is treated as concurrency-limited) and succeeds after the migration.

@oxytocinlove Could you please review this today?

I'm re-requesting your review Sami because of the size of the change I made to runs_v.

repo: METR/vivaria


text:
Traceback (most recent call last)

Version
2.4 (Default)
Which section is the problem?
Script Base
Please complete the following information
Traceback (most recent call last):
  File "/home/kali/MHDDoS/start.py", line 27, in <module>
    from PyRoxy import Proxy, ProxyChecker, ProxyType, ProxyUtiles
  File "/home/kali/.local/lib/python3.9/site-packages/PyRoxy/__init__.py", line 13, in <module>
    from PyRoxy import GeoIP, Tools
  File "/home/kali/.local/lib/python3.9/site-packages/PyRoxy/Tools/__init__.py", line 18
    rand_char: Callable[[int], str] = lambda length=16: chr(Random.rand_int(0, 1000)) for _ in range(length))

What happened (Describe the bug) ?
When i start the MHDDoS with this following script
python3 start.py tools or help
this below problem happens
Screenshots
www.google.com
Please provide a link to a minimal reproduction of the bug
No response
Relevant log output
No response
Additional context
No response
Your code
No response

Fixed https://github.com/MHProDev/PyRoxy/commit/897a7653821216ef1f72e0e2d35a3faf5099687c

repo: MHProDev/MHDDoS


text:
Start a Discord

[ ] Link to it in README
[ ] Link to it on handsfree.js.org

You appear to have a discord link in the docs at handsfree.js.org but, unfortunately, it currently returns an "invalid invite" error.

Oh thank you so much for reminding me! I've created a new Discord here and will update the docs in the next few days: https://discord.gg/CjWCuhXjCh
It's just me right now as I don't intend to start inviting friends in until my next blog post (next week or so) but you're more than welcome to come and chat. I've curated all of my tweets and sources of inspiration into various channels which you might find interesting. Alternatively you can message me directly at: Oz#4442

Hi Oz, I've recently checked this discord channel and is not available.
Says invalid invitation.
Cheers!

Hi! Sorry I've been homeless for 1.5 months and I couldn't raise $1500 so I've stopped Discords/Socials and publicly supporting this project (I have thousands of lines to merge when I'm back on my feet)
I'm currently using Handsfree.js to make NFT art and once I can raise enough and am not homeless anymore I'll merge my offline work into this project and go full force.
Thank you and sorry for the temporary break on this,
Oz

authors: ArtSeeClarke MIDIBlocks Zedsquared carlesgutierrez

repo: MIDIBlocks/handsfree


text:
1.6.0 dev modal

Added modals as a top level key (#282)

Passes my first sniff test. @mrkwanzaa can you review, and merge up to 2.0

authors: aiizhao connor-makowski


text:
New Segfault during calculateBestEstimate

When running VIO with loop closure detector, sometimes when a loop closure is detected there is a segfault during RobustPGO's output. Specifically, I add loop closures in the following way:
nfg.add(gtsam::BetweenFactor<gtsam::Pose3>(
    factor.ref_key_, factor.cur_key_, factor.ref_Pose_cur_, factor.noise_));

pgo_->update(nfg);

Then, when loops are detected I want to return the full trajectory. First I want a specific element from the values of the pgo so that I can compute an error transform. This is done like so:
gtsam::Pose3 w_Pose_Bkf_optimal =
      pgo_->calculateBestEstimate().at<gtsam::Pose3>(
          W_Pose_Bkf_estimates_.size() - 1);

W_Pose_Bkf_estimates_ is guaranteed to be of same size as pgo_'s values.
I get this error (in gdb):
Thread 1 "lcd_ros_node" received signal SIGSEGV, Segmentation fault.
0x00007ffff5f63610 in vtable for gtsam::BetweenFactor<gtsam::Pose3> ()
   from /home/marcus/code/VIO/build/libSparkVio.so
(gdb) backtrace
#0  0x00007ffff5f63610 in vtable for gtsam::BetweenFactor<gtsam::Pose3> ()
    at /home/marcus/code/VIO/build/libSparkVio.so
#1  0x00007ffff565d30d in gtsam::Values::tryInsert(unsigned long, gtsam::Value const&) ()
    at /usr/local/lib/libgtsam.so.4
#2  0x00007ffff565d64d in gtsam::Values::insert(unsigned long, gtsam::Value const&) ()
    at /usr/local/lib/libgtsam.so.4
#3  0x00007ffff565d811 in gtsam::Values::insert(gtsam::Values const&) () at /usr/local/lib/libgtsam.so.4
#4  0x00007ffff565da5d in gtsam::Values::Values(gtsam::Values const&) () at /usr/local/lib/libgtsam.so.4
#5  0x00007ffff5ade609 in GenericSolver::calculateBestEstimate() (this=<optimized out>)
    at /usr/local/include/RobustPGO/GenericSolver.h:46
#6  0x00007ffff5ade609 in VIO::LoopClosureDetector::getWPoseMap() const (this=0x5555561f9290)
    at /home/marcus/code/VIO/src/LoopClosureDetector.cpp:773
#7  0x00007ffff5ade609 in VIO::LoopClosureDetector::spinOnce(std::shared_ptr<VIO::LoopClosureDetectorInputPayload> const&) (this=0x5555561f9290, input=std::shared_ptr<VIO::LoopClosureDetectorInputPayload> (use count 1, weak count 0) = {...}) at /home/marcus/code/VIO/src/LoopClosureDetector.cpp:180
#8  0x000055555562dc59 in VIO::LCD_ros::spin() ()
#9  0x000055555561d5e1 in main ()

So during calculateBestEstimate there is an issue. But this simply returns the class gtsam::Values values member, so there shouldn't be anything wrong there. The backtrace suggests it is a problem in the gtsam library. @yunzc have you seen this before?

It's worth clarifying that this isn't happening during the update step. The factors are all added properly. The problem comes when I make a call to RobustPGO::calculateBestEstimate or RobustPGO::calculateEstimate. These functions are simple getters for the values_ field of the GenericSolver base class.
I'm not sure why returning values_ should involve a call to gtsam::Values::tryInsert.

I will look into this more but note that .size() might be giving issues. When you call .at(arg) the argument should be the gtsam key instead of the index (see https://borg.cc.gatech.edu/sites/edu.borg/html/a00261.html)

It looks like simply calling RobustPGO::calculateEstimate() is what is causing the issue, not size() or even at<gtsam::Pose3>(). But RobustPGO:: calculateEstimate() simply returns the class member so I'm not sure what is going wrong, unless the copy constructor for gtsam::Values is doing something strange.

weird hmm since we are also using this a lot in another project and never had any issues with seg faults

authors: marcusabate yunzc

repo: MIT-SPARK/RobustPGO


text:
Fixes to restore stratification inside ice-shelf cavities

What changes does this PR introduce?
Bug fix
What is the current behaviour?
There were unrealistic strong mixing inside ice-shelf cavities that is caused by incorrect masking/vertical layer index at the ceilings inside ice cavities.
What is the new behaviour
The stratification inside ice cavities are restored. The fixes are mainly to use the correct vertical index and/or turn off ggl90/gmredi at the ceilings of ice cavities .
Does this PR introduce a breaking change?
Probably not. But results may change if pkg/shelfice is turned on.
Other information:
@mmazloff noticed the incorrect stratification inside ice-shelf cavities. @ifenty and I implemented the fixes. However, some of the fixes still need improvement. The fixes are probably not working for p coordinates. This PR is related to issue #588.
Suggested addition to tag-index
o  ggl90/ggl90_calc.F not to use values inside ice-shelf
o     gmredi/gmredi_calc_tensor.F: mask out dSigmaDx and dSigmaDy at cavity ceilings
o     gmredi/gmredi_xtransport.F and gmredi_ytransport.F: set dTdz to zero at cavity ceilings

Thanks @owang01! I agree, it looks like a fix is warranted... However I don't understand some of the adjustments to gmredi_xtransport.F (and similarly ytransport). I'm specifically interested in this block of code:
         dTdz(i,j) =  op5*(
     &    +op5*recip_drC(k)*
     &        ( maskC(i-1,j,k,bi,bj)*
     &            (Tracer(i-1,j,km1)-Tracer(i-1,j,k))
     &         +maskC( i ,j,k,bi,bj)*
     &            (Tracer( i ,j,km1)-Tracer( i ,j,k))
     &        )
     &    + ...

I'm curious why you want to avoid this block with the blanket if statement rather than additional masking. Specifically I think that this block should be
         dTdz(i,j) =  op5*(
     &    +op5*recip_drC(k)*
     &        ( maskC(i-1,j,k,bi,bj)*maskC(i-1,j,km1,bi,bj)*
     &            (Tracer(i-1,j,km1)-Tracer(i-1,j,k))
     &         +maskC( i ,j,k,bi,bj)*maskC(i,j,km1,bi,bj)*
     &            (Tracer( i ,j,km1)-Tracer( i ,j,k))
     &        )
     &    + ...

I'll illustrate this as follows ... If we have the following situation in the X-Z plane
           u
     | --- | --- |
k-1  |  x  |  o  |
     | --- | --- |
k    |  o  |  o  |
     | --- | --- |
k+1  |  o  |  o  |
     | --- | --- |
       i-1    i

where "o" denotes that the cell is open, and x denotes the cell is closed (let me know if it's not clear what I'm going for ...). The u at the top denotes that this is the interface where we're computing the interpolated dTdz term. Should this be zero at the k'th level? I guess, is the hFacW at k-1 = 0 in this case? If yes, then the if statement makes sense, otherwise, I think the masking would make more sense.

@timothyas Thank you for your suggestion. Using the extra masking you suggested is a better fix than using an if block to set dTdz to zero. See commit 92aea56.

Cool! No problem @owang01, so you agree that in my little diagram hFacW at vertical level k-1 would not necessarily be 0? Despite the amount of times I have thought about hFac, it is hard to understand general rules for what it's value should be.

A minor detail for the tag-index: these changes do not affect gmredi+shelfice if the Griffies Skew Flux form is used. It only matters for the bolus velocity.

Cool! No problem @owang01, so you agree that in my little diagram hFacW at vertical level k-1 would not necessarily be 0? Despite the amount of times I have thought about hFac, it is hard to understand general rules for what it's value should be.

@timothyas In your diagram hFacW at vertical level k-1 would be zero. hFacW and hFacS are set in ini_masksC_etc.F using one of the two methods: useMin4hFacEdges = T or F (lines 232-321). According to the note in lines 237-238, both methods give the same results ("except when useShelfIce=T and if, in adjacent columns, ice-draft and bathy are within the same level k"). If useMin4hFacEdges = T, hFacW(i,j,k) would be the minimum of hFacC(i,j,k) and hFacC(i-1,j,k). So go back to your diagram, it would indicate hFacW at vertical level k-1 is zero. (I don't know how the two methods differ "when useShelfIce=T and if, in adjacent columns, ice-draft and bathy are within the same level k.")
Although hFacW at vertical level k-1 is zero in your diagram, I think using the extra masking still makes more sense than setting dTdz to zero. The interpolated dTdz would be at k-1/2, 1/2 levels below W point at level k-1. So we can still have non-zero interpolated dTdz even if hFacW at vertical level k-1 is zero. The extra masking makes sure no T from dry points are used in calculating dTdz.

Thanks for the thorough explanation @owang01, that all makes sense to me.

The interpolated dTdz would be at k-1/2, 1/2 levels below W point at level k-1. So we can still have non-zero interpolated dTdz even if hFacW at vertical level k-1 is zero. The extra masking makes sure no T from dry points are used in calculating dTdz.

I definitely agree with this - it's good to be on the same page! As @mjlosch and @jm-c have said, I think some discussion about (eventually) merging the two PRs would be good and I'd be happy to contribute to those discussions as much as I can.

@mjlosch Thank you for your review. This PR was about some fixes that we had implemented for ECCO V4r5 iterations to restore stratification inside ice-cavities. Following some email exchange in the MITgcm-dev mailing list, this PR was submitted to share those fixes. As you and @timothyas pointed out, and also I mentioned in the beginning of the PR, some of the fixes need improvement. We can have more discussion about how to proceed in the next dev meeting.

@timothyas Thanks again for your suggestion and the nice diagram.

Thanks for the thorough explanation @owang01, that all makes sense to me.

Closing this PR as incorrect stratification inside ice cavity is likely related to GM/Redi and GGL90 bugs, which have now been fixed by PRs #593 and #597.

repo: MITgcm/MITgcm