Getting a strange "cannot delete artifact" error message when just opening up a prep

Steps to reproduce:

While logged in to Qiita, open https://qiita.ucsd.edu/study/description/10283
In the Data Types section, click on "Metagenomic", then click on the "ID 4953" public prep
The prep loads as expected, but I also see the following error message at the top of the page:

This doesn't seem to be a major problem, but it is kind of disconcerting.

This means someone tried to delete an artefact on the page and received the
warning - not necessarily you because the message will NEVER go away.
On Wed, Sep 25, 2019 at 1:07 PM Marcus Fedarko<EMAIL_ADDRESS>wrote:

Steps to reproduce:

While logged in to Qiita, open
https://qiita.ucsd.edu/study/description/10283
In the Data Types section, click on "Metagenomic", then click on
the "ID 4953" public prep
The prep loads as expected, but I also see the following error
message at the top of the page:

[image: Screen Shot 2019-09-25 at 1 05 20 PM]
https://user-images.githubusercontent.com/4177727/65635442-2b3c3d00-df95-11e9-8785-bb885950a7b1.png
This doesn't seem to be a major problem, but it is kind of disconcerting.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/biocore/qiita/issues/2950?email_source=notifications&email_token=AAPL3AGVKJXPVKHE5FCKMF3QLPAHDA5CNFSM4I2RPRQ2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HNWOFZQ,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAPL3AFG3DFPMHH2UGOJ3QLQLPAHDANCNFSM4I2RPRQQ
.

--
Gail Ackermann
Knight Lab
UCSD
<EMAIL_ADDRESS><EMAIL_ADDRESS>

Huh, I didn't know that! It's good to know I'm not messing something up at least :)
The behavior of the error message never going away seems strange to me. I imagine it will confuse other people, also. It might be worth only showing it once, if that's possible (but if not I understand).

"Traditionally" we have left those messages on the screen and don't allow the user to delete them until another action is performed; the message is erased after another job is successful. As of today, I think it will be good to allow the user to delete them. @ackermag, do you agree?

Yes I agree.
It is very confusing to the average user.
On Mon, Sep 30, 2019 at 1:18 AM Antonio Gonzalez<EMAIL_ADDRESS>wrote:

"Traditionally" we have left those messages on the screen and don't allow
the user to delete them until another action is performed; the message is
erased after another job is successful. As of today, I think it will be
good to allow the user to delete them. @ackermag
https://github.com/ackermag, do you agree?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/biocore/qiita/issues/2950?email_source=notifications&email_token=AAPL3AH45OPKTQ63RGPHUF3QMGY6PA5CNFSM4I2RPRQ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD742RLY#issuecomment-536455343,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAPL3ADZ6WNYQQH626TFUPLQMGY6PANCNFSM4I2RPRQQ
.

--
Gail Ackermann
Knight Lab
UCSD
<EMAIL_ADDRESS><EMAIL_ADDRESS>

Thank you both, changing issue title to reflect this.

Just a quick message about this issue. The main complexity to fix this issue is that we currently are not passing the redis-key to the bootstrapAlert JS method that displays the error in the webpage. Thus, we are going to need to update/fix the 60+ bootstrapAlert calls to pass this value so we can pass that redis-key information for delete.


[3.10/3.18 N] Add permissions for urandom, e2fsck, init

Kernel 3.18 needs permissions mostly for /dev/urandom
and then, e2fsck was lacking permissions to open
block devices, resulting in unability to run fsck
on filesystems at boot.
Also, fix init permissions for persist mount.

Don't merge yet, other selinux parameters coming.....


NETOBSERV-933: make sure flows collector CRD has the right namespace for OCP [backport]

Signed-off-by: msherif1234<EMAIL_ADDRESS>(cherry picked from commit 4195a6ef4e76bbcb870f3f3b607169a6eab1c24e)

/hold
still seeing tls: bad certificate error when using images build of 1.2 branch


Standardize on "spatial" or "geospatial", and add synonyms to site search

Right now our alpha docs use "spatial" in some places, and "geospatial" in others.
The team internally uses the term "geospatial", but I would like to standardize on "spatial" since that is used by established DBs.  Also, I found very few DB resources via internet search that use "geospatial".
Further, we do need to make sure that our docs website search returns results for both "spatial" and "geospatial" since the latter term is not entirely unheard of.
Estimated scope of work:

Standardize on "spatial" and edit everything to match
Check in with engineering team re: updating the site search index to add the necessary synonyms

This was previously added to our search synonyms: https://github.com/cockroachdb/docs/blob/master/jekyll-algolia-dev/lib/jekyll/algolia/indexer.rb#L294


Mongodb sink connector is not inserting in mongodb

I have added my sink properties as follows,
Sink.properties
name=kafka-connector-mongodb-sink
connector.class=org.radarcns.mongodb.MongoDbSinkConnector
tasks.max=1
buffer.capacity=100
topics=test.test.test
mongo.host=<IP_ADDRESS>
mongo.database=test
mongo.port=27017
but when i try to load the sink connectors as follows,
./bin/connect-standalone ./etc/schema-registry/connect-avro-standalone.properties ./etc/kafka/sink.properties
It is always giving me as
[2017-01-03 09:05:17,993] INFO 0 have been processed initiating MongoDbSinkTask (org.radarcns.mongodb.MongoDbSinkTask:57)
[2017-01-03 09:05:18,514] INFO 0 have been written in MongoDB 0 records need to be processed. (org.radarcns.mongodb.MongoDbWriter:60)
I can see in MongoDbWriter it is executing the following code under run() method,
while (!stopping.get()) {
//code
}
but my buffer is always empty.. so it is giving the output as above..
I cant see in my logs that nowhere it is calling put() method  which is to fill the buffer from MongoDbSinkTask class. And when starting , it shows zero record have to be processed from initial assessment.
Logs
[2017-01-03 08:50:17,846] INFO Created connector kafka-connector-mongodb-sink (org.apache.kafka.connect.cli.ConnectStandalone:93)
[2017-01-03 08:50:17,959] INFO 0 have been processed initiating MongoDbSinkTask (org.radarcns.mongodb.MongoDbSinkTask:57)
[2017-01-03 08:50:18,261] INFO Cluster created with settings {hosts=[<IP_ADDRESS>:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500} (org.mongodb.driver.cluster:71)
Kindly let me know the issue in this..or in case if further details needed

Hi @nathgopi45 thanks for your feedback. We have already planned more tests on this component for this and the next weeks. We'll keep you posted.

HI @nathgopi45, are you trying to consume multiple topics? In that case they have to be comma separated. ( test1, test2, test3)
Are you using a custom RecordConverterFactory and RecordConverter or using the default one? You have to make sure that there is a suitable RecordConverter available according to your schema.

Hi @nathgopi45 the bug has been fixed in the dev branch.
Now you will see a log like this
INFO 11 have been processed
INFO 11 have been written in MongoDB 0 records need to be processed
INFO [FLUSH-Writer] Time-laps: 147899nsec
INFO [FLUSH] Time-laps: 546823nsec
INFO WorkerSinkTask{id=radar-connector-mongodb-sink-0} Committing offsets

@fnobilia Can we close this issue?

@nivemaham yes please. While closing, could you add a reference to the first release?

Fixed in release 0.1


Issue373 daymisclassification

Re-defined Nwindows so that all days are evaluated in g.part5. This solves the issue with files starting with several non-wear days for MM time windows.

Thanks Vincent, I've updated the News log as you suggested.


Fix sl-alert testing to test valid themes

These tests are performing correctly. They were written to verify: https://github.com/softlayer/sl-ember-components/blob/7e6c655b485cdcfbd92014d80654a455a2acd675/addon/components/sl-alert.js#L112
However, the titles of the tests and the messages in the asserts are not clear on what is being done. These could stand to be updated.

@juwara0 the line you linked to is a thrown warning.  Nothing in the current tests asserts that a warning is thrown.
I see no problems with this PR to correct the fact that our own test improperly uses our enum, however I would suggest adding an additional assert that the warning is thrown when a value not in the enum is provided.
@notmessenger and I discussed the future of our enums at one point and decided that at some point we need to make our enums extendable without the need to extend the entire component.  That way a consuming application can extend the enum, add a new theme name easily, and then add their CSS to support said theme, without needing to touch anything else in a component or group of components.
With that being the end-goal, this PR seems to move in the desired direction.  It perhaps does not fall in line with our desired order of operations, but it does seem valid.


License

Please select an open-source license to apply to this project.

I'll add it this week

done

Thank you!


devmapper: prevent libdevmapper from deleting device symlinks in RemoveDeviceDeferred

This is backport of upstream for docker-1.10.3
if there is no cookie set in dm task, or flag DM_UDEV_DISABLE_LIBRARY_FALLBACK
is cleared for a DM_DEV_REMOVE task, libdevmapper will fallback to clean up the
symlink under /dev/mapper by itself, no matter the device removal is executed
immediately or deferred by the kernel.In some cases, the removal is deferred by the
kernel, while the symlink is deleted directly by libdevmapper, when docker tries to
activate the device again, the deferred removal will be canceld, but the symlink will
not show up again, so docker's attempt to mount the device by the symlink will fail,
and it will eventually leads to a docker start/diff error.
Fixes #24671
Signed-off-by: Ji.Zhilong<EMAIL_ADDRESS>

We need this patch backported. I have created this PR for rhel-1.10.3 branch. We will need a similar one for fedora-1.10.3 as well.

cc @rhatdan @mrunalp @runcom

I'll take care of the Fedora branch, is this issue to be backported to 1.12 branch as well?

LGTM

This is required in 1.12 as well. Would be good if upstream docker can do it. If they are not planning another release, then we will have to do it internally.

Sounds good

LGTM

@runcom, I don't think upstream is releasing this in 1.12. So we need to backport this fix for rhel/fedora 1.12

@rhvgoyal, wait, if this is fixing something in the 1.12.x release then it can be included in the upcoming 1.12.2 release (and then we'll just rebase our branch w/o backporting anything). So, I don't remember, but, is this fixing any issue present in 1.12 so we can include it in 1.12.2 here upstream?

@runcom I did not know that there are plans for 1.12.2. So here is the original issue. I had mentioned previously to include the PR in docker if we ever released 1.12.2.
I see that michael crosy has labeled PR to be included in 1.12.2. Is there anything else needed to be done to make sure it does get included in 1.12.2.
https://github.com/docker/docker/pull/24740

@rhvgoyal great.
Out of the blue, either of https://github.com/docker/docker/pull/26212 or https://github.com/docker/docker/pull/26378 are fixing something in 1.12.z which can be included in the upcoming 1.12.2 upstream? I discussed this morning with upstream and we ended up declaring they will be included in 1.13 but if you think they are for 1.12.2 please comment on the PRs upstream.


glob patterns are not working on OSX Yosemite

Seems like glob patterns such as "**/*" are not working on OSX Yosemite
it return an empty array
node: v6.9.5
npm: 3.10.10

My platform is darwin however my bash is global not in the below path
Uncaught Error: spawn /usr/local/bin/bash ENOENT

my bash is global

What does that mean exactly? Do you have any ideas on how to detect where bash is located? I have played around with some ideas in the past, but I didn't find a solution that worked in all environments.
I wonder if we can make this an option and fall back to attempting to detect where bash is located if the option isn't provided. Then implementors and users can handle it themselves if necessary.

It means that I have if i go to the terminal and try to use bash i am able
too. $ bash.
Thus if from js i try to spawn it, it will be the same path as linux.
spawn('bash', cmd) ...
On Sat, 11 Mar 2017 at 17:34, Brian Woodward<EMAIL_ADDRESS>wrote:

my bash is global
What does that mean exactly? Do you have any ideas on how to detect where
bash is located? I have played around with some ideas in the past, but I
didn't find a solution that worked in all environments.
I wonder if we can make this an option and fall back to attempting to
detect where bash is located if the option isn't provided. Then
implementors and users can handle it themselves if necessary.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/jonschlinkert/bash-glob/issues/2#issuecomment-285879264,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AQv-WuNhl9Sz3T7ZElaqLCUvGV27KF4_ks5rks0ugaJpZM4MaNU8
.

Okay, thanks. I thought that might be what you meant, but I didn't want to make that assumption.

@alan-agius4 are you wrapping **/* with quotes?

Yes, double quotes.
On Sun, 12 Mar 2017 at 01:04, Jon Schlinkert<EMAIL_ADDRESS>wrote:

@alan-agius4 https://github.com/alan-agius4 are you wrapping */ with
quotes?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/jonschlinkert/bash-glob/issues/2#issuecomment-285910522,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AQv-WpNe9FEK-sEUCGKUxJQyNqTMHcBtks5rkzaSgaJpZM4MaNU8
.

It seems that bash is installed at /bin/bash on OS X Yosemite & up (possibly on older, I can't test that).
This could be solved by doing some type of which bash to check the path first. I believe shelljs has an implementation that can be used.


failing installation

Still unable to install this release branch following the instruction in the README!

Hi Arno,
@petrocel  and I have thoroughly reviewed the issue, and we ultimately concluded that it was related to certificate generation. The Let's Encrypt container returned an error indicating that it couldn't create new certificates because too many had been generated recently. After waiting for the retry period, we performed a completely clean installation, and it worked on the first try.
Anyway to simplify the process, we added a .sh script to the repository. You just need to download it from the repository, modify the path where it retrieves the Solr data, and run it to automatically set up the entire development environment without having to manually execute all the commands.

Marco,
checked this again, removed all dockers and all installation dirs
copied the setup_prod.sh to /data
made it executable
ran the script (with the default values from the script, which should be ok for now)
result :

Hi Arno,
@petrocel and I have rechecked the situation, and as you can see from this site:
https://tools.letsdebug.net/cert-search?m=domain&q=api.devsearch.oceaninfohub.org&d=168

The certificate for the frontend was generated successfully because there was an available slot. However, the certificate for the API wasn't generated due to all slots being filled, which is why the site returns a "failed to fetch" error.

This happens because Let's Encrypt attempts to generate a new certificate for both the dev and API environments each time a clean installation is performed. While the installation process itself works, there's an issue with HTTPS caused by the limitations of Let's Encrypt certificates, which are free and therefore have certain constraints. These constraints lead to the available slots being quickly filled, causing the error.
Using paid certificates would obviously prevent this issue. In any case, Ale and I will do another clean installation tomorrow morning (when another slot for the API becomes available) to ensure everything works fine. After that, we'll update you on when you can try a fresh installation yourself.

Marco,
changed the installation and used devsearch.odis.org instead of devsearch.oceaninfohub.org
there is a certificate now, but the problem is still the same, still get the same error screen

Thank you, Arno, for changing the DNS. We will work on understanding what the problem is as soon as possible.

installation using the script works fine


Contributor Hashrates shows Hashrate in KH/s

Many places on the pool shows Hashrate in KH/s when all the settings have been changed to be different values

I am closing all old feature requests and ideas since it doesn't seem that anyone is doing a PR against those anyway. Since I won't have the time, no need to keep these ideas open if they are not eventually being implemented.


Old code doesn't work: UnsupportedOrderParameters

I am trying to learn Zipline and the code doesn't work. This is from a workshop from 2013, when it seemed to work. Also, a more recent book "Mastering pandas for finance" also introduces Zipline. I tried examples from the book with the same exact error: "UnsupportedOrderParameters: Passing non-Asset argument to 'order()' is not supported. Use 'sid()' or 'symbol()' methods to look up an Asset."
Running the following code raises an exception:
# setting up
import pandas as pd
import zipline
from zipline import TradingAlgorithm
from zipline.data.loader import load_bars_from_yahoo

# creating time interval
start = pd.Timestamp('2008-01-01', tz='UTC')
end = pd.Timestamp('2013-01-01', tz='UTC')

# loading the data
input_data = load_bars_from_yahoo(
    stocks=['AAPL', 'MSFT'],
    start=start,
    end=end,
)

# A very simple example algo, using the TradingAlgorithm subclass interface.
class BuyAndHoldAlgorithm(TradingAlgorithm):

    def initialize(self):
        self.has_ordered = False

    def handle_data(self, data):
        """
        Buy 100 shares of every stock in our universe at the start of
        the simulation.
        """
        if not self.has_ordered:
            for stock in data:
                self.order(stock, 100)
            self.has_ordered = True

# running the algo
my_algo = BuyAndHoldAlgorithm()
results = my_algo.run(input_data)

---------------------------------------------------------------------------
UnsupportedOrderParameters                Traceback (most recent call last)
<ipython-input-13-7cf998f536dc> in <module>()
      1 my_algo = BuyAndHoldAlgorithm()
----> 2 results = my_algo.run(input_data)

/lib/python2.7/site-packages/zipline/algorithm.pyc in run(self, source, overwrite_sim_params, benchmark_return_source)
    587         # perf dictionary
    588         perfs = []
--> 589         for perf in self.gen:
    590             perfs.append(perf)
    591

/lib/python2.7/site-packages/zipline/gens/tradesimulation.pyc in transform(self, stream_in)
    119                         date,
    120                         snapshot,
--> 121                         self.algo.instant_fill,
    122                     )
    123                     # Perf messages are only emitted if the snapshot contained

/lib/python2.7/site-packages/zipline/gens/tradesimulation.pyc in _process_snapshot(self, dt, snapshot, instant_fill)
    296
    297         if any_trade_occurred:
--> 298             new_orders = self._call_handle_data()
    299             for order in new_orders:
    300                 perf_process_order(order)

/lib/python2.7/site-packages/zipline/gens/tradesimulation.pyc in _call_handle_data(self)
    325             self.algo,
    326             self.current_data,
--> 327             self.simulation_dt,
    328         )
    329         orders = self.algo.blotter.new_orders

/lib/python2.7/site-packages/zipline/utils/events.pyc in handle_data(self, context, data, dt)
    190     def handle_data(self, context, data, dt):
    191         for event in self._events:
--> 192             event.handle_data(context, data, dt, context.trading_environment)
    193
    194

/lib/python2.7/site-packages/zipline/utils/events.pyc in handle_data(self, context, data, dt, env)
    208         """
    209         if self.rule.should_trigger(dt, env):
--> 210             self.callback(context, data)
    211
    212

<ipython-input-12-bdb56ee6f3dd> in handle_data(self, data)
     12         if not self.has_ordered:
     13             for stock in data:
---> 14                 self.order(stock, 100)
     15             self.has_ordered = True

/lib/python2.7/site-packages/zipline/algorithm.pyc in order(self, sid, amount, limit_price, stop_price, style)
    887                                    limit_price,
    888                                    stop_price,
--> 889                                    style)
    890
    891         # Convert deprecated limit_price and stop_price parameters to use

/lib/python2.7/site-packages/zipline/algorithm.pyc in validate_order_params(self, asset, amount, limit_price, stop_price, style)
    926         if not isinstance(asset, Asset):
    927             raise UnsupportedOrderParameters(
--> 928                 msg="Passing non-Asset argument to 'order()' is not supported."
    929                     " Use 'sid()' or 'symbol()' methods to look up an Asset."
    930             )

UnsupportedOrderParameters: Passing non-Asset argument to 'order()' is not supported. Use 'sid()' or 'symbol()' methods to look up an Asset.

@fazzolini the example you're working from is using several outdated interfaces.  A more modern version of that algorithm would be written like this:
import pandas as pd
from zipline import TradingAlgorithm
from zipline.api import order, sid
from zipline.data.loader import load_bars_from_yahoo

# creating time interval
start = pd.Timestamp('2008-01-01', tz='UTC')
end = pd.Timestamp('2013-01-01', tz='UTC')

# loading the data
input_data = load_bars_from_yahoo(
    stocks=['AAPL', 'MSFT'],
    start=start,
    end=end,
)

def initialize(context):
    context.has_ordered = False

def handle_data(context, data):
    if not context.has_ordered:
        for stock in data:
            order(sid(stock), 100)
        context.has_ordered = True

algo = TradingAlgorithm(initialize=initialize, handle_data=handle_data)
results = algo.run(input_data)

The two major differences here are that initialize and handle_data are implemented as free functions rather than as methods of a TradingAlgorithm subclass, and we call sid on the data keys to convert them into equity objects before passing them to order.


Allow renaming of attributes without adding ="" if it is already present

Currently if we are editing attribute IDE will always insert ="" after completing attribute. This is really irritating, especially when we are changing Grid.Column="1" to Grid.Row="1" and so on.
In this PR i have added option to pass whole file to CompletionEngine (fullText parameter to GetCompletions). Then engine can check if next character is = and fill just property name.
For this to work we also need to pass full file text to CompletionEngine, see this branch.

Resolved merge conflicts and simplified api a bit.
Based on Merge #25 to avoid conflicts, please merge it first.

Solved merge conflicts and simplified api a bit.


Clicking on Autofill popup doesn't refresh screen

I have a form with TextFormFields.
I click to select the phone field.  The autofill comes up, I click it and visually nothing happens, but if I type a number, the full phone number appears
I noticed that the addlistener is not being called on the autofill popup click.
Same for email, but autofill on name seems to work.
$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel master, 1.25.0-5.0.pre.125, on Linux, locale en_US.UTF-8)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
[✓] Chrome - develop for the web
[✓] Linux toolchain - develop for Linux desktop
[!] Android Studio (not installed)
[✓] VS Code (version 1.51.1)
[✓] Connected device (3 available)

Hi @sgehrman
Can you please provide your flutter doctor -v and a minimal complete reproducible code sample?
Thank you

Without additional information, we are unfortunately not sure how to resolve this issue.
We are therefore reluctantly going to close this bug for now.
Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.
Could everyone who still has this problem please file a new issue with the exact description of what happens, logs, and the output of flutter doctor -v.
All system setups can be slightly different, so it's always better to open new issues and reference related issues.


[Terra-Arrange] Reflow issue when port is resized to 320x256 & Radio Button issue

Before changes

After changes

Summary
1.Terra Arrange refow Issue- Previously, when port is resized to 320x256px buttons are moving out of example border. Now  it has been resolved
2.Terra Arrange Radio button issue-Previously, the radio button options are only read individually as Yes and No and not in conjunction with their associated questions. Now it was announcing associated questions when we navigate to radio buttons
What was changed:
Added below media Query to fix reflow issue
@media (max-width: 320px) {
.fit {
align-self: flex-start;
flex: 0 0;
}
}
Why it was changed:
To fix reflow issue
Testing

This change was tested using:

[x] WDIO
[ ] Jest
[ ] Visual testing (please attach a screenshot or recording)
[ ] Other (please describe below)
[ ] No tests are needed

Reviews
In addition to engineering reviews, this PR needs:

[ ] UX review
[ ] Accessibility review
[ ] Functional review

Additional Details

This PR resolves:
UXPLATFORM-9728

Thank you for contributing to Terra.
@cerner/terra

@gt106551 Can you add screenshot of the issue before and after code changes

+1


pagination implemented on answered responses.

https://openedx.atlassian.net/browse/MA-2098

@aleffert please review

Current coverage is 48.02%

Merging #677 into master will decrease coverage by -0.01% as of 966f769

@@            master    #677   diff @@
======================================
  Files          424     424
  Stmts        28108   28114     +6
  Branches         0       0
  Methods          0       0
======================================
  Hit          13503   13503
  Partial          0       0
- Missed       14605   14611     +6

Review entire Coverage Diff as of 966f769

Powered by Codecov. Updated on successful CI builds.

@aleffert what kind of test I can write here?

@saeedbashir the first step to figuring out what to test is to figure out what the code does. For example, I commented on a possible bug about reloading. So we could have a test that reloads the thread and makes sure that everything that's expected to reload actually does. We should also make sure we handle error cases and the case where things return an empty array

@aleffert please review

I really don't think you need that flag. Consider:

That flag is only used in loadResponses
loadResponses is only called from loadedThread
loadedThread sets it to false before calling loadResponses

Therefore it is always false in loadResponses and can just be removed

Otherwise, this looks good except for tests

@aleffert please review

change looks good. Just need to add tests

@aleffert I need help with test cases. Do I need to write test case for DiscussionResponsesViewController?

@saeedbashir that is correct. Again, it may make sense to pull some of this logic out of the view controller and into a separate class that is only responsible for data, since that will be easier to manipulate programmatically

@saeedbashir I would encourage you to start by making a list of what the functionality being tested is. Then figure out how you would want to test that functionality. Then figure out how the code needs to be structured in order for that test to be possible. It might make sense to write something up and then send it to me

@aleffert can we delay refactoring for initial release of forums?. I am going on leaves from next week, I want to finish forum issues and so that forums will be ready for bug bash before I went on leaves.

@saeedbashir that's okay.


Build error on upgrade from 1.1.6 -> 1.17

Just tried upgrading from v1.1.6 to v1.1.7, but encountered a build error upon upgrading:

Error:(196, 82) error: initialHashMapCapacity(int) is not public in MapsUtil; cannot be accessed from outside package

Let me know if other information would be of use!

Shoot, looks like it is package private... 1.1.8 incoming

https://github.com/johncarl81/parceler/commit/d2b27ccf3c28665389517d6b3ce5026e59bead86

Thanks :-)


Bump promtail to 1.5.2

towards https://github.com/giantswarm/giantswarm/issues/29844
Checklist

[x] Update changelog in CHANGELOG.md.
[ ] Make sure values.yaml and values.schema.json are valid.

lol https://github.com/giantswarm/observability-bundle/pull/189


Spike Compiler

Struggle/Problem

Once Spike has an AST, we need to then compile the AST to the final result.
Solution

Risks and Rabbit Holes

We'll do this by:

Recursing the tree, and:

Running all unique HTML nodes in the AST through:

reshape-expressions, reshape-include, reshape-layouts, reshape-minify, or;
reshape-standard

Running all unique CSS nodes in the AST through postcss with postcss-present-env
Running all unique JS nodes in the AST through rebuild

Appetite

10-20 days.
Note

See https://github.com/spike-js/rfcs/blob/master/architecture/alpha.md#scope

@jssee we can pair on this and/or discuss it via this issue


WIP: Adding support for unsigned (Big)Int

This is nowhere close to be merge'able, but I thought I'd use it to get the discussion going:
While trying to see how Noria would workout on a project, I hit an issue where unsigned BigInt(20) column types weren't properly supported. nom-sql had issues parsing the SQL while trying to load it all in Noria and threw ParseIntError { kind: Overflow } at us.
I started hacking trying to get something working to at least get to load the the mysql dump into noria and make progress with the testing. Now here I am… msql-srv seems to deal with it fine (based on my limited reading of the code), but nom-sql less so. I'm more than willing to make progress on this, but would love to know what y'all take is on  adding the DataType::Unsigned(Big)Int is. Or would it be nicer to treat these as properties of the DataType itself, just like the "width"? msql-srv looks at it as flags on the column definition… Also what about the other "integer" types MySQL supports?
Anyways, I thought I'd get the discussion going already. In the meantime I'll try to make progress here… somehow. Tomorrow tho probably :)
wdyt? Or did I miss something entirely?

This is an entirely reasonable question! :+1:
We can help with nom-sql parse failures if you let us know what queries it barfs at. We certainly would love it if there was a utility to read MySQL dumps into Noria!
One perhaps important thing to note is that DataType exists in order to allow Noria's operators to be generic over the data they consume and store in their state. It's a bit of an imperfect solution, but since the dataflow changes dynamically as queries arrive, the precise column types aren't known at compile time. One constraint for doing fancy things with DataType (like adding signedness as a property) is that the memory size of the DataType enum is pretty crucial to Noria's memory footprint: every record cell value in Noria uses at least sizeof(DataType) bytes, so adding additional enum variants or levels of enum indirection can come at some cost.

@ms705 I've just opened a PR on ms705/nom-sql to only realize it's your repo 🤦♂
Anyways, that's the work I had done (plus on a v0_0_4 branch to avoid bumping noria) to support unsigned types when parsing the SQL. If we can get that in a reasonable fashion for merge, we can then see how to move this PR forward. wdyt?

With ms705/nom-sql#40 merged, I'll rebase and update this PR

Alright, I think this "only" misses the arithmetic operators on all the new permutation. I'll add these this week sometime 🙈. But I am missing something else? wdyt?

Thanks for coming back to this! :+1:
Released the updated nom-sql as v0.0.8. I'll take a look at the changes today or tomorrow.

Thanks, looks good to merge to me once CI has finished.


Unable to build project with latest Visual Studio

Release Type: Official Release
Version: <IP_ADDRESS>2
Platform(s): Windows/Linux, likely all others but untested.
Describe the bug
Unable to build project with Stride packages on latest Visual Studio.
To Reproduce

Update Visual Studio to latest version 17.12.0+
Clean
Attempt to build

Expected behavior
Should build regardless of new VS versions, unless VS explicitly broke something.
Log and callstacks
Error shows as:
[AssetCompiler] Could not find a compatible version of MSBuild.
The command "dotnet "C:\Users\<UserHere>\.nuget\packages\stride.core.assets.compilerapp\<IP_ADDRESS>2\buildTransitive\..\lib\net8.0-windows7.0\Stride.Core.Assets.CompilerApp.dll"  --disable-auto-compile --project-configuration "Debug" --platform=Windows --project-configuration=Debug --compile-property:StrideGraphicsApi=Direct3D11 --output-path="<ProjectPath>\Bin\Windows\Debug\win-x64\data" --build-path="<ProjectPath>\<ProjectName>.Windows\obj\stride\assetbuild\data" --package-file="<ProjectPath>\<ProjectName>.Windows\<ProjectName>.Windows.csproj" --msbuild-uptodatecheck-filebase="<ProjectPath>\<ProjectName>.Windows\obj\Debug\win-x64\stride\assetcompiler-uptodatecheck"" exited with code 1.

Found a work around: Install net 8.0 sdk. I had 8.0 installed as part of VS, was likely removed with the VS update since 9.0 is now out.
Would this work if FindAndSetMSBuildVersion checked if x.Version.Major >= NetMajorVersion instead of ==?

No. You can keep .NET 9 SDK.
Just make sure that .NET 8 SDK is also present.


Click on links from search bar result leads to blank page

Detailed description
the url https://www.carbondesignsystem.com/components/data-table/code#skip-to-content result in a blank page. This url came from search result after typing in table.

What browser are you working in?

Chrome
Steps to reproduce the issue

Go to Carbon home page
Expand search bar, type in table, then click on second link which should lead to url: https://www.carbondesignsystem.com/components/data-table/code#skip-to-content
Going to that URL results in blank page

Thanks for making the issue, we're working on getting our search updated with the content from the new website. It is still indexing our old content.

This should be fixed, we've updated the search index


Uglifying the service file gives provider error

Hey there.
I am using this service in a RequireJS setup, uglifying everything using Uglify2.
Giving me this error:
http://errors.angularjs.org/1.5.0-rc.2/$injector/unpr?p0=tProvider <- t
Do you have any tips on how to fix this?
Regards,
Mathias

I think this is causing the issue:
`                        ModalService.showModal({
template: template,
controller: function ($scope, close) {
                            $scope.closeModal = ($event) => {

                                close();

                                localStorageService.set(key, true);

                                $event.preventDefault();
                            };

                        }
                    });`

setting the controller as a function instead of an array with annotations.


cdbk not working after the latest update.

hey,
After updating to the latest version of oh-my-zsh, cdbk stopped working. Whenever I try the command, it says zsh: command not found: cdbk

Hey @thorion3006,
Could you confirm that cdbk is definitely in .oh-my-zsh/custom/plugins?
I just tested it with the latest oh-my-zsh without any issues.


Pickling error realted to psycopg2 when running task soda_scan_execute against PostgreSQL/Redshift

https://github.com/sodadata/prefect-soda-core/blob/127af7047fe5a0a8e3967fadedf6f699e77cd7df/prefect_soda_core/tasks.py#L56
When running the new soda_scan_execute task, a pickle error is being raised by Prefect related to psycopg2.
The following is the traceback obtained by running the task locally against a PostgreSQL database
09:18:29.634 | INFO    | prefect.engine - Created flow run 'fiery-nightingale' for flow 'test-flow'
09:18:29.802 | INFO    | Flow run 'fiery-nightingale' - Created task run 'soda_scan_execute-1578bf38-0' for task 'soda_scan_execute'
09:18:29.803 | INFO    | Flow run 'fiery-nightingale' - Executing 'soda_scan_execute-1578bf38-0' immediately...
09:18:29.880 | ERROR   | Flow run 'fiery-nightingale' - Encountered exception during execution:
Traceback (most recent call last):
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/engine.py", line 566, in orchestrate_flow_run
    result = await run_sync(flow_call)
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/utilities/asyncutils.py", line 56, in run_sync_in_worker_thread
    return await anyio.to_thread.run_sync(call, cancellable=True)
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/anyio/to_thread.py", line 31, in run_sync
    return await get_asynclib().run_sync_in_worker_thread(
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/anyio/_backends/_asyncio.py", line 937, in run_sync_in_worker_thread
    return await future
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/anyio/_backends/_asyncio.py", line 867, in run
    result = context.run(func, *args)
  File "/var/folders/f0/p934kz610pb_sssp_zsmc7qr0000gp/T/ipykernel_50931/1336752104.py", line 3, in test_flow
    return soda_scan_execute(data_source_name="soda_test", configuration=soda_configuration, checks=sodacl_check, disable_telemetry=True, verbose=True, variables=None)
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/tasks.py", line 294, in __call__
    return enter_task_run_engine(
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/engine.py", line 705, in enter_task_run_engine
    return run_async_from_worker_thread(begin_run)
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/utilities/asyncutils.py", line 136, in run_async_from_worker_thread
    return anyio.from_thread.run(call)
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/anyio/from_thread.py", line 49, in run
    return asynclib.run_async_from_thread(func, *args)
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/anyio/_backends/_asyncio.py", line 970, in run_async_from_thread
    return f.result()
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/lib/python3.9/concurrent/futures/_base.py", line 446, in result
    return self.__get_result()
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/lib/python3.9/concurrent/futures/_base.py", line 391, in __get_result
    raise self._exception
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/engine.py", line 822, in create_task_run_then_submit
    return await future._result()
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/futures.py", line 227, in _result
    return final_state.result(raise_on_failure=raise_on_failure)
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/orion/schemas/states.py", line 145, in result
    raise data
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/task_runners.py", line 214, in submit
    result = await run_fn(**run_kwargs)
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/engine.py", line 963, in begin_task_run
    return await orchestrate_task_run(
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/engine.py", line 1081, in orchestrate_task_run
    terminal_state = await return_value_to_state(
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/states.py", line 129, in return_value_to_state
    return Completed(data=DataDocument.encode(serializer, result))
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/orion/schemas/data.py", line 42, in encode
    blob = lookup_serializer(encoding).dumps(data, **kwargs)
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/serializers.py", line 59, in dumps
    data_bytes = cloudpickle.dumps(data)
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/cloudpickle/cloudpickle_fast.py", line 73, in dumps
    cp.dump(obj)
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/cloudpickle/cloudpickle_fast.py", line 633, in dump
    return Pickler.dump(self, obj)
TypeError: cannot pickle 'psycopg2.extensions.connection' object
09:18:29.882 | INFO    | Task run 'soda_scan_execute-1578bf38-0' - Crash detected! Execution was interrupted by an unexpected exception.
09:18:29.942 | ERROR   | Flow run 'fiery-nightingale' - Finished in state Failed('Flow run encountered an exception.')

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Input In [35], in <cell line: 1>()
----> 1 result = test_flow()

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/flows.py:384, in Flow.__call__(self, return_state, *args, **kwargs)
    380 parameters = get_call_parameters(self.fn, args, kwargs)
    382 return_type = "state" if return_state else "result"
--> 384 return enter_flow_run_engine_from_flow_call(
    385     self, parameters, return_type=return_type
    386 )

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/engine.py:149, in enter_flow_run_engine_from_flow_call(flow, parameters, return_type)
    145 if in_async_main_thread():
    146     # An event loop is already running and we must create a blocking portal to
    147     # run async code from this synchronous context
    148     with start_blocking_portal() as portal:
--> 149         return portal.call(begin_run)
    150 else:
    151     # An event loop is not running so we will create one
    152     return anyio.run(begin_run)

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/anyio/from_thread.py:283, in BlockingPortal.call(self, func, *args)
    268 def call(
    269     self,
    270     func: Callable[..., Union[Coroutine[Any, Any, T_Retval], T_Retval]],
    271     *args: object
    272 ) -> T_Retval:
    273     """
    274     Call the given function in the event loop thread.
    275
   (...)
    281
    282     """
--> 283     return cast(T_Retval, self.start_task_soon(func, *args).result())

File ~/.pyenv/versions/3.9.10/lib/python3.9/concurrent/futures/_base.py:446, in Future.result(self, timeout)
    444     raise CancelledError()
    445 elif self._state == FINISHED:
--> 446     return self.__get_result()
    447 else:
    448     raise TimeoutError()

File ~/.pyenv/versions/3.9.10/lib/python3.9/concurrent/futures/_base.py:391, in Future.__get_result(self)
    389 if self._exception:
    390     try:
--> 391         raise self._exception
    392     finally:
    393         # Break a reference cycle with the exception in self._exception
    394         self = None

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/anyio/from_thread.py:219, in BlockingPortal._call_func(self, func, args, kwargs, future)
    216             else:
    217                 future.add_done_callback(callback)
--> 219             retval = await retval
    220 except self._cancelled_exc_class:
    221     future.cancel()

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/client.py:105, in inject_client.<locals>.with_injected_client(*args, **kwargs)
    103 async with client_context as client:
    104     kwargs.setdefault("client", client)
--> 105     return await fn(*args, **kwargs)

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/engine.py:228, in create_then_begin_flow_run(flow, parameters, return_type, client)
    226     return state
    227 elif return_type == "result":
--> 228     return state.result()
    229 else:
    230     raise ValueError(f"Invalid return type for flow engine {return_type!r}.")

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/orion/schemas/states.py:145, in State.result(self, raise_on_failure)
    143 if (self.is_failed() or self.is_crashed()) and raise_on_failure:
    144     if isinstance(data, Exception):
--> 145         raise data
    146     elif isinstance(data, BaseException):
    147         warnings.warn(
    148             f"State result is a {type(data).__name__!r} type and is not safe "
    149             "to re-raise, it will be returned instead."
    150         )

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/engine.py:566, in orchestrate_flow_run(flow, flow_run, parameters, interruptible, client, partial_flow_run_context)
    560             else:
    561                 run_sync = (
    562                     run_sync_in_interruptible_worker_thread
    563                     if interruptible or timeout_scope
    564                     else run_sync_in_worker_thread
    565                 )
--> 566                 result = await run_sync(flow_call)
    568         waited_for_task_runs = await wait_for_task_runs_and_report_crashes(
    569             flow_run_context.task_run_futures, client=client
    570         )
    572 except Exception as exc:

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/utilities/asyncutils.py:56, in run_sync_in_worker_thread(__fn, *args, **kwargs)
     45 """
     46 Runs a sync function in a new worker thread so that the main thread's event loop
     47 is not blocked
   (...)
     53 thread may continue running — the outcome will just be ignored.
     54 """
     55 call = partial(__fn, *args, **kwargs)
---> 56 return await anyio.to_thread.run_sync(call, cancellable=True)

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/anyio/to_thread.py:31, in run_sync(func, cancellable, limiter, *args)
     10 async def run_sync(
     11     func: Callable[..., T_Retval],
     12     *args: object,
     13     cancellable: bool = False,
     14     limiter: Optional[CapacityLimiter] = None
     15 ) -> T_Retval:
     16     """
     17     Call the given function with the given arguments in a worker thread.
     18
   (...)
     29
     30     """
---> 31     return await get_asynclib().run_sync_in_worker_thread(
     32         func, *args, cancellable=cancellable, limiter=limiter
     33     )

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/anyio/_backends/_asyncio.py:937, in run_sync_in_worker_thread(func, cancellable, limiter, *args)
    935 context.run(sniffio.current_async_library_cvar.set, None)
    936 worker.queue.put_nowait((context, func, args, future))
--> 937 return await future

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/anyio/_backends/_asyncio.py:867, in WorkerThread.run(self)
    865 exception: Optional[BaseException] = None
    866 try:
--> 867     result = context.run(func, *args)
    868 except BaseException as exc:
    869     exception = exc

Input In [34], in test_flow()
      1 @flow
      2 def test_flow():
----> 3     return soda_scan_execute(data_source_name="soda_test", configuration=soda_configuration, checks=sodacl_check, disable_telemetry=True, verbose=True, variables=None)

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/tasks.py:294, in Task.__call__(self, return_state, wait_for, *args, **kwargs)
    290 parameters = get_call_parameters(self.fn, args, kwargs)
    292 return_type = "state" if return_state else "result"
--> 294 return enter_task_run_engine(
    295     self,
    296     parameters=parameters,
    297     wait_for=wait_for,
    298     task_runner=SequentialTaskRunner(),
    299     return_type=return_type,
    300     mapped=False,
    301 )

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/engine.py:705, in enter_task_run_engine(task, parameters, wait_for, return_type, task_runner, mapped)
    703 # Async or sync task run in sync flow run
    704 elif not flow_run_context.flow.isasync:
--> 705     return run_async_from_worker_thread(begin_run)
    707 # Sync task run in async flow run
    708 else:
    709     # Call out to the sync portal since we are not in a worker thread
    710     return flow_run_context.sync_portal.call(begin_run)

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/utilities/asyncutils.py:136, in run_async_from_worker_thread(__fn, *args, **kwargs)
    131 """
    132 Runs an async function in the main thread's event loop, blocking the worker
    133 thread until completion
    134 """
    135 call = partial(__fn, *args, **kwargs)
--> 136 return anyio.from_thread.run(call)

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/anyio/from_thread.py:49, in run(func, *args)
     46 except AttributeError:
     47     raise RuntimeError("This function can only be run from an AnyIO worker thread")
---> 49 return asynclib.run_async_from_thread(func, *args)

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/anyio/_backends/_asyncio.py:970, in run_async_from_thread(func, *args)
    964 def run_async_from_thread(
    965     func: Callable[..., Coroutine[Any, Any, T_Retval]], *args: object
    966 ) -> T_Retval:
    967     f: concurrent.futures.Future[T_Retval] = asyncio.run_coroutine_threadsafe(
    968         func(*args), threadlocals.loop
    969     )
--> 970     return f.result()

File ~/.pyenv/versions/3.9.10/lib/python3.9/concurrent/futures/_base.py:446, in Future.result(self, timeout)
    444     raise CancelledError()
    445 elif self._state == FINISHED:
--> 446     return self.__get_result()
    447 else:
    448     raise TimeoutError()

File ~/.pyenv/versions/3.9.10/lib/python3.9/concurrent/futures/_base.py:391, in Future.__get_result(self)
    389 if self._exception:
    390     try:
--> 391         raise self._exception
    392     finally:
    393         # Break a reference cycle with the exception in self._exception
    394         self = None

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/engine.py:822, in create_task_run_then_submit(task, flow_run_context, parameters, wait_for, return_type, task_runner)
    820     return await future._wait()
    821 elif return_type == "result":
--> 822     return await future._result()
    823 else:
    824     raise ValueError(f"Invalid return type for task engine {return_type!r}.")

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/futures.py:227, in PrefectFuture._result(self, timeout, raise_on_failure)
    225 if not final_state:
    226     raise TimeoutError("Call timed out before task finished.")
--> 227 return final_state.result(raise_on_failure=raise_on_failure)

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/orion/schemas/states.py:145, in State.result(self, raise_on_failure)
    143 if (self.is_failed() or self.is_crashed()) and raise_on_failure:
    144     if isinstance(data, Exception):
--> 145         raise data
    146     elif isinstance(data, BaseException):
    147         warnings.warn(
    148             f"State result is a {type(data).__name__!r} type and is not safe "
    149             "to re-raise, it will be returned instead."
    150         )

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/task_runners.py:214, in SequentialTaskRunner.submit(self, task_run, run_key, run_fn, run_kwargs, asynchronous)
    204 async def submit(
    205     self,
    206     task_run: TaskRun,
   (...)
    211 ) -> PrefectFuture[R, A]:
    212     # Run the function immediately and store the result in memory
    213     try:
--> 214         result = await run_fn(**run_kwargs)
    215     except BaseException as exc:
    216         result = exception_to_crashed_state(exc)

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/engine.py:963, in begin_task_run(task, task_run, parameters, wait_for, result_filesystem, settings)
    957     raise RuntimeError(
    958         f"Cannot orchestrate task run '{task_run.id}'. "
    959         f"Failed to connect to API at {client.api_url}."
    960     ) from connect_error
    962 try:
--> 963     return await orchestrate_task_run(
    964         task=task,
    965         task_run=task_run,
    966         parameters=parameters,
    967         wait_for=wait_for,
    968         result_filesystem=result_filesystem,
    969         interruptible=interruptible,
    970         client=client,
    971     )
    972 except Abort:
    973     # Task run already completed, just fetch its state
    974     task_run = await client.read_task_run(task_run.id)

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/engine.py:1081, in orchestrate_task_run(task, task_run, parameters, wait_for, result_filesystem, interruptible, client)
   1076     terminal_state = Failed(
   1077         message="Task run encountered an exception.",
   1078         data=DataDocument.encode("cloudpickle", exc),
   1079     )
   1080 else:
-> 1081     terminal_state = await return_value_to_state(
   1082         result, serializer="cloudpickle"
   1083     )
   1085     # for COMPLETED tasks, add the cache key and expiration
   1086     if terminal_state.is_completed():

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/states.py:129, in return_value_to_state(result, serializer)
    122     return State(
    123         type=new_state_type,
    124         message=message,
    125         data=DataDocument.encode(serializer, result),
    126     )
    128 # Otherwise, they just gave data and this is a completed result
--> 129 return Completed(data=DataDocument.encode(serializer, result))

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/orion/schemas/data.py:42, in DataDocument.encode(cls, encoding, data, **kwargs)
     36 """
     37 Create a new data document
     38
     39 A serializer must be registered for the given `encoding`
     40 """
     41 # Dispatch encoding
---> 42 blob = lookup_serializer(encoding).dumps(data, **kwargs)
     44 inst = cls(blob=blob, encoding=encoding)
     45 inst._cache_data(data)

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/serializers.py:59, in PickleSerializer.dumps(data)
     57 @staticmethod
     58 def dumps(data: Any) -> bytes:
---> 59     data_bytes = cloudpickle.dumps(data)
     61     return base64.encodebytes(data_bytes)

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/cloudpickle/cloudpickle_fast.py:73, in dumps(obj, protocol, buffer_callback)
     69 with io.BytesIO() as file:
     70     cp = CloudPickler(
     71         file, protocol=protocol, buffer_callback=buffer_callback
     72     )
---> 73     cp.dump(obj)
     74     return file.getvalue()

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/cloudpickle/cloudpickle_fast.py:633, in CloudPickler.dump(self, obj)
    631 def dump(self, obj):
    632     try:
--> 633         return Pickler.dump(self, obj)
    634     except RuntimeError as e:
    635         if "recursion" in e.args[0]:

TypeError: cannot pickle 'psycopg2.extensions.connection' object

Steps to reproduce:

Start a local PostgreSQL database, i.e docker run -d --name soda_postgres -p 5432:5432 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=soda postgres:latest
Define Soda configuration inside configuration.yml

data_source soda_test:
  type: postgres
  connection:
    host: localhost
    port: 5432
    username: postgres
    password: postgres
    database: soda
  schema: information_schema

Define Soda checks inside checks.yml

checks for tables:
- row_count = 0

Clone prefect-soda-core, checkout branch add-soda-scan-execute-task, then install prefect-soda-core[postgres] with pip install /path/to/prefect-soda-core[postgresql]
Define a Prefect flow using the following:

from prefect_soda_core.tasks import soda_scan_execute
from prefect_soda_core.soda_configuration import SodaConfiguration
from prefect_soda_core.sodacl_check import SodaCLCheck
from prefect import flow

soda_configuration = SodaConfiguration(configuration_yaml_file="configuration.yml")
sodacl_check = SodaCLCheck(sodacl_yaml_file="checks.yml")

@flow
def test_flow():
    return soda_scan_execute(data_source_name="soda_test", configuration=soda_configuration, checks=sodacl_check, disable_telemetry=True, verbose=True, variables=None)

result = test_flow()

Run the script and you should get a traceback similar to the one mentioned above.

cc @vijaykiran

Hi @AlessandroLollo  - As far as I know, this might need a significant change in the Soda core API, because we do save connecting as a property. I'll need to think a bit on how to handle this.

To understand if this error/behavior is only related to Psycopg2, I made a similar test with MySQL.
Turns out it is a a broader issue.
With MySQL, I get the following error:
11:31:44.826 | INFO    | prefect.engine - Created flow run 'polite-sunfish' for flow 'test-flow'
11:31:45.013 | INFO    | Flow run 'polite-sunfish' - Created task run 'soda_scan_execute-1578bf38-0' for task 'soda_scan_execute'
11:31:45.014 | INFO    | Flow run 'polite-sunfish' - Executing 'soda_scan_execute-1578bf38-0' immediately...
11:31:46.134 | ERROR   | Flow run 'polite-sunfish' - Encountered exception during execution:
Traceback (most recent call last):
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/engine.py", line 566, in orchestrate_flow_run
    result = await run_sync(flow_call)
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/utilities/asyncutils.py", line 56, in run_sync_in_worker_thread
    return await anyio.to_thread.run_sync(call, cancellable=True)
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/anyio/to_thread.py", line 31, in run_sync
    return await get_asynclib().run_sync_in_worker_thread(
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/anyio/_backends/_asyncio.py", line 937, in run_sync_in_worker_thread
    return await future
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/anyio/_backends/_asyncio.py", line 867, in run
    result = context.run(func, *args)
  File "/var/folders/f0/p934kz610pb_sssp_zsmc7qr0000gp/T/ipykernel_50931/3375233151.py", line 3, in test_flow
    return soda_scan_execute(data_source_name="soda_mysql", configuration=soda_configuration, checks=sodacl_check, disable_telemetry=True, verbose=True, variables=None)
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/tasks.py", line 294, in __call__
    return enter_task_run_engine(
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/engine.py", line 705, in enter_task_run_engine
    return run_async_from_worker_thread(begin_run)
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/utilities/asyncutils.py", line 136, in run_async_from_worker_thread
    return anyio.from_thread.run(call)
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/anyio/from_thread.py", line 49, in run
    return asynclib.run_async_from_thread(func, *args)
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/anyio/_backends/_asyncio.py", line 970, in run_async_from_thread
    return f.result()
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/lib/python3.9/concurrent/futures/_base.py", line 446, in result
    return self.__get_result()
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/lib/python3.9/concurrent/futures/_base.py", line 391, in __get_result
    raise self._exception
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/engine.py", line 822, in create_task_run_then_submit
    return await future._result()
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/futures.py", line 227, in _result
    return final_state.result(raise_on_failure=raise_on_failure)
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/orion/schemas/states.py", line 145, in result
    raise data
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/task_runners.py", line 214, in submit
    result = await run_fn(**run_kwargs)
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/engine.py", line 963, in begin_task_run
    return await orchestrate_task_run(
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/engine.py", line 1081, in orchestrate_task_run
    terminal_state = await return_value_to_state(
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/states.py", line 129, in return_value_to_state
    return Completed(data=DataDocument.encode(serializer, result))
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/orion/schemas/data.py", line 42, in encode
    blob = lookup_serializer(encoding).dumps(data, **kwargs)
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/serializers.py", line 59, in dumps
    data_bytes = cloudpickle.dumps(data)
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/cloudpickle/cloudpickle_fast.py", line 73, in dumps
    cp.dump(obj)
  File "/Users/alessandro.lollo/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/cloudpickle/cloudpickle_fast.py", line 633, in dump
    return Pickler.dump(self, obj)
TypeError: cannot pickle '_mysql_connector.MySQL' object
11:31:46.136 | INFO    | Task run 'soda_scan_execute-1578bf38-0' - Crash detected! Execution was interrupted by an unexpected exception.
11:31:46.204 | ERROR   | Flow run 'polite-sunfish' - Finished in state Failed('Flow run encountered an exception.')

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Input In [43], in <cell line: 1>()
----> 1 result = test_flow()

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/flows.py:384, in Flow.__call__(self, return_state, *args, **kwargs)
    380 parameters = get_call_parameters(self.fn, args, kwargs)
    382 return_type = "state" if return_state else "result"
--> 384 return enter_flow_run_engine_from_flow_call(
    385     self, parameters, return_type=return_type
    386 )

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/engine.py:149, in enter_flow_run_engine_from_flow_call(flow, parameters, return_type)
    145 if in_async_main_thread():
    146     # An event loop is already running and we must create a blocking portal to
    147     # run async code from this synchronous context
    148     with start_blocking_portal() as portal:
--> 149         return portal.call(begin_run)
    150 else:
    151     # An event loop is not running so we will create one
    152     return anyio.run(begin_run)

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/anyio/from_thread.py:283, in BlockingPortal.call(self, func, *args)
    268 def call(
    269     self,
    270     func: Callable[..., Union[Coroutine[Any, Any, T_Retval], T_Retval]],
    271     *args: object
    272 ) -> T_Retval:
    273     """
    274     Call the given function in the event loop thread.
    275
   (...)
    281
    282     """
--> 283     return cast(T_Retval, self.start_task_soon(func, *args).result())

File ~/.pyenv/versions/3.9.10/lib/python3.9/concurrent/futures/_base.py:446, in Future.result(self, timeout)
    444     raise CancelledError()
    445 elif self._state == FINISHED:
--> 446     return self.__get_result()
    447 else:
    448     raise TimeoutError()

File ~/.pyenv/versions/3.9.10/lib/python3.9/concurrent/futures/_base.py:391, in Future.__get_result(self)
    389 if self._exception:
    390     try:
--> 391         raise self._exception
    392     finally:
    393         # Break a reference cycle with the exception in self._exception
    394         self = None

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/anyio/from_thread.py:219, in BlockingPortal._call_func(self, func, args, kwargs, future)
    216             else:
    217                 future.add_done_callback(callback)
--> 219             retval = await retval
    220 except self._cancelled_exc_class:
    221     future.cancel()

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/client.py:105, in inject_client.<locals>.with_injected_client(*args, **kwargs)
    103 async with client_context as client:
    104     kwargs.setdefault("client", client)
--> 105     return await fn(*args, **kwargs)

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/engine.py:228, in create_then_begin_flow_run(flow, parameters, return_type, client)
    226     return state
    227 elif return_type == "result":
--> 228     return state.result()
    229 else:
    230     raise ValueError(f"Invalid return type for flow engine {return_type!r}.")

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/orion/schemas/states.py:145, in State.result(self, raise_on_failure)
    143 if (self.is_failed() or self.is_crashed()) and raise_on_failure:
    144     if isinstance(data, Exception):
--> 145         raise data
    146     elif isinstance(data, BaseException):
    147         warnings.warn(
    148             f"State result is a {type(data).__name__!r} type and is not safe "
    149             "to re-raise, it will be returned instead."
    150         )

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/engine.py:566, in orchestrate_flow_run(flow, flow_run, parameters, interruptible, client, partial_flow_run_context)
    560             else:
    561                 run_sync = (
    562                     run_sync_in_interruptible_worker_thread
    563                     if interruptible or timeout_scope
    564                     else run_sync_in_worker_thread
    565                 )
--> 566                 result = await run_sync(flow_call)
    568         waited_for_task_runs = await wait_for_task_runs_and_report_crashes(
    569             flow_run_context.task_run_futures, client=client
    570         )
    572 except Exception as exc:

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/utilities/asyncutils.py:56, in run_sync_in_worker_thread(__fn, *args, **kwargs)
     45 """
     46 Runs a sync function in a new worker thread so that the main thread's event loop
     47 is not blocked
   (...)
     53 thread may continue running — the outcome will just be ignored.
     54 """
     55 call = partial(__fn, *args, **kwargs)
---> 56 return await anyio.to_thread.run_sync(call, cancellable=True)

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/anyio/to_thread.py:31, in run_sync(func, cancellable, limiter, *args)
     10 async def run_sync(
     11     func: Callable[..., T_Retval],
     12     *args: object,
     13     cancellable: bool = False,
     14     limiter: Optional[CapacityLimiter] = None
     15 ) -> T_Retval:
     16     """
     17     Call the given function with the given arguments in a worker thread.
     18
   (...)
     29
     30     """
---> 31     return await get_asynclib().run_sync_in_worker_thread(
     32         func, *args, cancellable=cancellable, limiter=limiter
     33     )

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/anyio/_backends/_asyncio.py:937, in run_sync_in_worker_thread(func, cancellable, limiter, *args)
    935 context.run(sniffio.current_async_library_cvar.set, None)
    936 worker.queue.put_nowait((context, func, args, future))
--> 937 return await future

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/anyio/_backends/_asyncio.py:867, in WorkerThread.run(self)
    865 exception: Optional[BaseException] = None
    866 try:
--> 867     result = context.run(func, *args)
    868 except BaseException as exc:
    869     exception = exc

Input In [42], in test_flow()
      1 @flow
      2 def test_flow():
----> 3     return soda_scan_execute(data_source_name="soda_mysql", configuration=soda_configuration, checks=sodacl_check, disable_telemetry=True, verbose=True, variables=None)

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/tasks.py:294, in Task.__call__(self, return_state, wait_for, *args, **kwargs)
    290 parameters = get_call_parameters(self.fn, args, kwargs)
    292 return_type = "state" if return_state else "result"
--> 294 return enter_task_run_engine(
    295     self,
    296     parameters=parameters,
    297     wait_for=wait_for,
    298     task_runner=SequentialTaskRunner(),
    299     return_type=return_type,
    300     mapped=False,
    301 )

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/engine.py:705, in enter_task_run_engine(task, parameters, wait_for, return_type, task_runner, mapped)
    703 # Async or sync task run in sync flow run
    704 elif not flow_run_context.flow.isasync:
--> 705     return run_async_from_worker_thread(begin_run)
    707 # Sync task run in async flow run
    708 else:
    709     # Call out to the sync portal since we are not in a worker thread
    710     return flow_run_context.sync_portal.call(begin_run)

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/utilities/asyncutils.py:136, in run_async_from_worker_thread(__fn, *args, **kwargs)
    131 """
    132 Runs an async function in the main thread's event loop, blocking the worker
    133 thread until completion
    134 """
    135 call = partial(__fn, *args, **kwargs)
--> 136 return anyio.from_thread.run(call)

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/anyio/from_thread.py:49, in run(func, *args)
     46 except AttributeError:
     47     raise RuntimeError("This function can only be run from an AnyIO worker thread")
---> 49 return asynclib.run_async_from_thread(func, *args)

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/anyio/_backends/_asyncio.py:970, in run_async_from_thread(func, *args)
    964 def run_async_from_thread(
    965     func: Callable[..., Coroutine[Any, Any, T_Retval]], *args: object
    966 ) -> T_Retval:
    967     f: concurrent.futures.Future[T_Retval] = asyncio.run_coroutine_threadsafe(
    968         func(*args), threadlocals.loop
    969     )
--> 970     return f.result()

File ~/.pyenv/versions/3.9.10/lib/python3.9/concurrent/futures/_base.py:446, in Future.result(self, timeout)
    444     raise CancelledError()
    445 elif self._state == FINISHED:
--> 446     return self.__get_result()
    447 else:
    448     raise TimeoutError()

File ~/.pyenv/versions/3.9.10/lib/python3.9/concurrent/futures/_base.py:391, in Future.__get_result(self)
    389 if self._exception:
    390     try:
--> 391         raise self._exception
    392     finally:
    393         # Break a reference cycle with the exception in self._exception
    394         self = None

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/engine.py:822, in create_task_run_then_submit(task, flow_run_context, parameters, wait_for, return_type, task_runner)
    820     return await future._wait()
    821 elif return_type == "result":
--> 822     return await future._result()
    823 else:
    824     raise ValueError(f"Invalid return type for task engine {return_type!r}.")

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/futures.py:227, in PrefectFuture._result(self, timeout, raise_on_failure)
    225 if not final_state:
    226     raise TimeoutError("Call timed out before task finished.")
--> 227 return final_state.result(raise_on_failure=raise_on_failure)

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/orion/schemas/states.py:145, in State.result(self, raise_on_failure)
    143 if (self.is_failed() or self.is_crashed()) and raise_on_failure:
    144     if isinstance(data, Exception):
--> 145         raise data
    146     elif isinstance(data, BaseException):
    147         warnings.warn(
    148             f"State result is a {type(data).__name__!r} type and is not safe "
    149             "to re-raise, it will be returned instead."
    150         )

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/task_runners.py:214, in SequentialTaskRunner.submit(self, task_run, run_key, run_fn, run_kwargs, asynchronous)
    204 async def submit(
    205     self,
    206     task_run: TaskRun,
   (...)
    211 ) -> PrefectFuture[R, A]:
    212     # Run the function immediately and store the result in memory
    213     try:
--> 214         result = await run_fn(**run_kwargs)
    215     except BaseException as exc:
    216         result = exception_to_crashed_state(exc)

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/engine.py:963, in begin_task_run(task, task_run, parameters, wait_for, result_filesystem, settings)
    957     raise RuntimeError(
    958         f"Cannot orchestrate task run '{task_run.id}'. "
    959         f"Failed to connect to API at {client.api_url}."
    960     ) from connect_error
    962 try:
--> 963     return await orchestrate_task_run(
    964         task=task,
    965         task_run=task_run,
    966         parameters=parameters,
    967         wait_for=wait_for,
    968         result_filesystem=result_filesystem,
    969         interruptible=interruptible,
    970         client=client,
    971     )
    972 except Abort:
    973     # Task run already completed, just fetch its state
    974     task_run = await client.read_task_run(task_run.id)

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/engine.py:1081, in orchestrate_task_run(task, task_run, parameters, wait_for, result_filesystem, interruptible, client)
   1076     terminal_state = Failed(
   1077         message="Task run encountered an exception.",
   1078         data=DataDocument.encode("cloudpickle", exc),
   1079     )
   1080 else:
-> 1081     terminal_state = await return_value_to_state(
   1082         result, serializer="cloudpickle"
   1083     )
   1085     # for COMPLETED tasks, add the cache key and expiration
   1086     if terminal_state.is_completed():

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/states.py:129, in return_value_to_state(result, serializer)
    122     return State(
    123         type=new_state_type,
    124         message=message,
    125         data=DataDocument.encode(serializer, result),
    126     )
    128 # Otherwise, they just gave data and this is a completed result
--> 129 return Completed(data=DataDocument.encode(serializer, result))

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/orion/schemas/data.py:42, in DataDocument.encode(cls, encoding, data, **kwargs)
     36 """
     37 Create a new data document
     38
     39 A serializer must be registered for the given `encoding`
     40 """
     41 # Dispatch encoding
---> 42 blob = lookup_serializer(encoding).dumps(data, **kwargs)
     44 inst = cls(blob=blob, encoding=encoding)
     45 inst._cache_data(data)

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/prefect/serializers.py:59, in PickleSerializer.dumps(data)
     57 @staticmethod
     58 def dumps(data: Any) -> bytes:
---> 59     data_bytes = cloudpickle.dumps(data)
     61     return base64.encodebytes(data_bytes)

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/cloudpickle/cloudpickle_fast.py:73, in dumps(obj, protocol, buffer_callback)
     69 with io.BytesIO() as file:
     70     cp = CloudPickler(
     71         file, protocol=protocol, buffer_callback=buffer_callback
     72     )
---> 73     cp.dump(obj)
     74     return file.getvalue()

File ~/.pyenv/versions/3.9.10/envs/playground/lib/python3.9/site-packages/cloudpickle/cloudpickle_fast.py:633, in CloudPickler.dump(self, obj)
    631 def dump(self, obj):
    632     try:
--> 633         return Pickler.dump(self, obj)
    634     except RuntimeError as e:
    635         if "recursion" in e.args[0]:

TypeError: cannot pickle '_mysql_connector.MySQL' object

Indeed, usually connection and cursors are not "pickleable" - so pretty much all the database types might fail.

Hi @AlessandroLollo - As far as I know, this might need a significant change in the Soda core API, because we do save connecting as a property. I'll need to think a bit on how to handle this.

Hey @vijaykiran 👋
Let me know if I can help in any way!


Files required before instrumentation are loaded from require.cache

We are testing our modules with gulp-istanbul, but in our gulpfile we require() these modules, as some of our gulp tasks use them. This causes require to cache the files before they are instrumented by istanbul, so when the tests require them, the uninstrumented versions are returned from require.cache.
I'm not sure if this is exactly a gulp-istanbul issue.
As a workaround we do:
var through = require('through2')

gulp.task('test', function(cb) {
  gulp.src(['src/**/*.js'])
    .pipe(through.obj(function(file, enc, cb) {  // <-- workaround
      delete require.cache[file.path];
      cb(undefined, file);
    }))
    .pipe(istanbul({ includeUntested: true }))
    .on('finish', function() {
      gulp.src(['test/**/*.js'])
        .pipe(mocha())
        .pipe(istanbul.writeReports())
        .on('end', cb);
    });
});

I'm getting "istanbul is not a function" when doing .pipe(istanbul({ includedUntested: true })


[MOB-6055] callback on setEmail/setUserId

🔹 JIRA Ticket(s) if any

MOB-6055

✏ Description

Add callbacks for setEmail/setUserId, and it returns success/failure based on device token is registered successfully or not. It will always return success if autoPushRegistration is false.

@roninopf Could you please start review for this ?

@Ayyanchira Could you please start review for this as well ?


MINIFICPP-647: Begin process of deprecating functions and remove thos…

…e which were added recently that aren't needed
Thank you for submitting a contribution to Apache NiFi - MiNiFi C++.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[ ] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[ ] Does your PR title start with MINIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[ ] Has your PR been rebased against the latest commit within the target branch (typically master)?

[ ] Is your initial contribution a single, squashed commit?

For code changes:

[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE file?
[ ] If applicable, have you updated the NOTICE file?

For documentation related changes:

[ ] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible.

Thanks for updating.  Will get this merged in.


Increase download timeout

I'm finding that the daemon get command will often timeout , and there has also been reports here https://github.com/lbryio/lbry/issues/533 that report the same thing. Testing download of "what" several times, I've found that it times out about 40% of the time.
The download_timeout is the number of seconds to wait for before the first blob (that's not the sd_blob) is downloaded. Setting it to 60 seconds and testing download of what, it succeeded 100% of the time. Not sure if the timeout is long enough for everyone though.
I believe this is happening now because we have more peers on the network than before with many of them not being reliable, and the ConnectionManager often finds an unreliable peer and wastes time connecting to them.

          1 Error

:no_entry_sign:
Please include a CHANGELOG entry.

          1 Message

:book:
See http://keepachangelog.com/en/0.3.0/ for details on good changelog guidelines

  Generated by :no_entry_sign: Danger

I think that instead of raising the timeout we should reset the counter after having downloaded the sd blob. Most of those timeouts are happening when the sd blob takes ~20 seconds to acquire, and the odds of timeout increase as the time to download the sd blob approaches 30 - no time is left for the data to start downloading.

I'm seeing the same thing, and thats a good solution. Would need to implement this https://github.com/lbryio/lbry/issues/504
Not sure if this patch is ok for now. Is 60 seconds timeout too unresponsive?

closing this for now


Errors when using complex filters

Thank you for your great work.
I found an error, that should be easy to fix. ToDoIst allows to use filters. Everything works fine, when you just use something like (today) but there is also the possibility to use something like (today & #Project). In this case, there is a 400 response (Bad Request). This is because the characters are directly send via the REST call. When I use (today%20%26%20%23Project) everything works fine. So, there should be a decoding of the URL parameter.

The bug was fixed in version 0.8.7, you can now test it.

Thank you! Works now as expected!


Add support for CVX-MCS server and client configuration (for M&E)

Enhancement summary
Support for enabling CVX-MCS server and CVX-MCS Client configs for M&E deployment.
Following are the required pieces for this configuration,

CVX MCS Server
- Enable cvx
- Enable management http
- Enable mcs server
- Input redis password
CVX MCS Client
- Enable man cvx
- Input cvx mcs server ip
- Enable mcs client
- Input secondary cvx mcs server ip ( if it is a purple client)

Which component of AVD is impacted
others
Use case example
MCS is used as a deterministic bandwidth control mechanism for multicast workflows. This is a CVX service, which involves configuration from CVX server and CVX clients . Some of the CVX clients communicate with 2 CVX Servers and these clienst are called Purple clients. Purple clients have an additional configuration that enables them to communicate with 2 CVX servers.
Describe the solution you would like
It would be good to have support for configuring CVX MCS Server and client,
Following are required configs ,
On CVX Server,
cvx
   no shutdown
   !
   service mcs
      redis password 7 070E334ddD1D18
      no shutdown
management api http-commands
   no shutdown
management http-server
   protocol http

On CVX Client,
management cvx
   no shutdown
   server host <IP_ADDRESS>
mcs client
   no shutdown

On CVX Purple Client,
management cvx
   no shutdown
   server host <IP_ADDRESS>
mcs client
   no shutdown
   !
   cvx secondary blue
      server host <IP_ADDRESS>

Describe alternatives you have considered
No response
Additional context
No response
Contributing Guide

[X] I agree to follow this project's Code of Conduct

Proposed Data model:
MCS
mcs_server:
cvx:
enable: true
management_api_http:
enable_http: true
mcs_server:
enable: true
redis:
password: 070E334ddD1D18
encryption: true
mcs_client:
management_cvx:
shutdown: false
server_host: <IP_ADDRESS>
client:
shutdown: false
purple_client:
managlement_cvx:
shutdown: false
server_host: <IP_ADDRESS>
client:
shutdown: true
blue:
server_host: <IP_ADDRESS>

Mcs server:
cvx:
    shutdown: < true|false >
    services:
        mcs:
            redis:
                password: 070E334ddD1D18
                encryption: true
            shutdown: < true|false >

mcs client:
management_cvx:
  shutdown: < true|false >
  server_host:
  - <IP_ADDRESS>
  vrf: < vrf_name >
mcs_client:
 shutdown: < true|false >

purple client
mcs_client:
  shutdown: < true|false >
  cvx_secondary:
  - name: blue
    server_host:
    - <IP_ADDRESS>


error: "use of overloaded operator '!=' is ambiguous" for dense_map-iterator?

So I'm trying to use entt and copied the single-include header of version 3.12.2 into my project's directory.
For some reason, if I try to compile my code with entt (using clang 15.0.7 on WSL2, also tried with clang 14.0.0) I get the following error:
[project's path]/inc/ECS/entt.hpp:37953:24: error: use of overloaded operator '!=' is ambiguous (with operand types 'entt::dense_map<unsigned int, std::shared_ptr<entt::basic_sparse_set<>>, entt::identity>::iterator' (aka 'dense_map_iterator<__normal_iterator<entt::internal::dense_map_node<unsigned int, std::shared_ptr<entt::basic_sparse_set<>>> *, std::vector<entt::internal::dense_map_node<unsigned int, std::shared_ptr<entt::basic_sparse_set<>>>>>>') and 'entt::dense_map<unsigned int, std::shared_ptr<entt::basic_sparse_set<>>, entt::identity>::iterator')
        for(auto &&curr: pools) {
                       ^
[project's path]/inc/ECS/entt.hpp:38003:9: note: in instantiation of member function 'entt::basic_registry<>::rebind' requested here
        rebind();
        ^
[project's path]/inc/Log/Log.h:16:45: note: in instantiation of member function 'entt::basic_registry<>::basic_registry' requested here
                : m_filePath(filePath), m_logEntries({}), m_container({})
                                                          ^
/usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_relops.h:87:7: note: candidate function [with _Tp = entt::internal::dense_map_iterator<__gnu_cxx::__normal_iterator<entt::internal::dense_map_node<unsigned int, std::shared_ptr<entt::basic_sparse_set<>>> *, std::vector<entt::internal::dense_map_node<unsigned int, std::shared_ptr<entt::basic_sparse_set<>>>>>>]
      operator!=(const _Tp& __x, const _Tp& __y)
      ^
[project's path]/inc/ECS/entt.hpp:3167:30: note: candidate function [with Lhs = __gnu_cxx::__normal_iterator<entt::internal::dense_map_node<unsigned int, std::shared_ptr<entt::basic_sparse_set<>>> *, std::vector<entt::internal::dense_map_node<unsigned int, std::shared_ptr<entt::basic_sparse_set<>>>>>, Rhs = __gnu_cxx::__normal_iterator<entt::internal::dense_map_node<unsigned int, std::shared_ptr<entt::basic_sparse_set<>>> *, std::vector<entt::internal::dense_map_node<unsigned int, std::shared_ptr<entt::basic_sparse_set<>>>>>]
[[nodiscard]] constexpr bool operator!=(const dense_map_iterator<Lhs> &lhs, const dense_map_iterator<Rhs> &rhs) noexcept {
                             ^
[project's path]/inc/ECS/entt.hpp:37953:26: note: in implicit call to 'operator!=' for iterator of type 'entt::basic_registry<>::pool_container_type' (aka 'dense_map<unsigned int, shared_ptr<basic_sparse_set<entt::entity, std::allocator<entt::entity>>>, entt::identity, equal_to<unsigned int>, allocator<std::pair<const unsigned int, std::shared_ptr<entt::basic_sparse_set<>>>>>')
        for(auto &&curr: pools) {
                         ^~~~~
[project's path]/inc/ECS/entt.hpp:3493:28: note: selected 'begin' function with iterator type 'entt::dense_map<unsigned int, std::shared_ptr<entt::basic_sparse_set<>>, entt::identity>::iterator' (aka 'dense_map_iterator<__normal_iterator<entt::internal::dense_map_node<unsigned int, std::shared_ptr<entt::basic_sparse_set<>>> *, std::vector<entt::internal::dense_map_node<unsigned int, std::shared_ptr<entt::basic_sparse_set<>>>>>>')
    [[nodiscard]] iterator begin() noexcept {
                           ^
1 error generated.

The file with the Log-class where the registry gets initiated looks like this:
// Log.h
#ifndef LOG_H
#define LOG_H

#include <Log/LogEntry.h>
#include <jsoncpp/json.h>
#include <vector>
#include <memory>
#include <regex>

class FileParser;
class Log
{
	friend class FileParser;
public:
	Log(const std::string& filePath = "")
		: m_filePath(filePath), m_logEntries({}), m_container({})
	{}
	~Log() { m_container.clear(); }
public:
	std::weak_ptr<LogEntry> createLogEntry();
	void deleteLogEntry(const std::weak_ptr<LogEntry>& toDelete);
	const std::vector<std::shared_ptr<LogEntry>>& getEntries() const { return m_logEntries; }
	const std::string& getFilePath() const { return m_filePath; }
	Json::Value toJSON() const;
	void setFilePath(const std::string& newFilePath) { m_filePath = newFilePath; }
private:
	std::string m_filePath;
	std::vector<std::shared_ptr<LogEntry>> m_logEntries;
	entt::registry m_container;
};

#endif

Is this a bug or did I mess something up?

(It'd be probably a good idea if I'd share the compiler-arguments for above too...)
-Wall -Wextra -std=c++17 -O2 -m64
The error-message from above is generated by clang-14

Clang 14 is tested here on the CI and there are no errors.
Have you already tried the upstream version? To be honest, I cannot reproduce the issue yet. 🤔

I can try the version from the master-branch, hopefully this will solve it...

Wait, isn't that dated the same as the release? If so, then that'd be useless...
Ok, I'll just try the experimental

Nope, same error :/

I've just wrote a super simple example and with that it compiles fine... what's groing wrong in my project?...

Is there a chance that you have a template operator!= that accepts two arguments of any type anywhere in the code?

Not in my code, but JSONCpp has one. But that won't probably be it since it's specialized for two const Json::SecuteAllocator<T>-objects.
In that simple example I've also tested it with JSONCpp, working fine...

You should try to use master. However, getting entt.hpp from there isn't enough because it's only generated for new releases.
Therefore, you can either use the files under src/entt or regenerate the entt.hpp file locally for your tests.
In both cases and without a proper repro, I'm tempted to mark the issue as invalid for the time being.

I've just tried it with the src-files, no difference, still just that one error. I don't get how or why this happens and have no idea what else to test...
So I'll either have to search further, trying all random stuff... or search for something else.

To add all files I did the following (telling you, so you can tell if I did something wrong):

Copied all files from inside of entt-3.12.2/src/entt to my project's inc/ECS/entt/-directory
Added -I"inc/ECS/entt/" to my compiler arguments.
Changed #include <ECS/entt.hpp> to #include <ECS/entt/entity/registry.hpp> (since I'm only interested in the ECS-part...)

Did you try commenting out the depse_map::iterator::operator!=()? This could show you the other operator definition that makes the whole thing ambiguous.

Not yet, I can give it a shot...

First: That breaks everything even further
Second: It just shows me a bunch of STL-iterators which don't match

My bad, the error message tells us the alternative: std::rel_ops::operator!= from stl_relops.h.

I think I've found the issue: It was a using namepsace std::relops in one of my headers to make comparing Date-objects simpler...
Guess I'll have to find another way to do that, but at least entt's not complaining anymore!

A general recommendation is to avoid using namespace at global scope in headers or inside namespaces in headers. And I was initially right. And it was not EnTT complaining, but the compiler telling you there's an error.

Yeah, you're right. Of course it was the compiler, but it was complaining about multiple matches because of entt and rel_ops having definitions for that operator.
User-error by me and with that I'll close this issue


feat: update to new webrtc-star, make DHT optional for now

This is needed by @pgte for the IIIF endeavour


Replace ConfigureAwait(false) with ConfigureAwait(ben)

I was exploring the code and came to the conclusion that YOU are doing it wrong.
With the introduction of #66 the code will be sprinkled with ConfigureAwait(false) but that is totally wrong! We should stop capturing Ben instead of the context! So I suggest we introduce ConfigureAwait(ben). Thoughts?

I used it once. The continuation was dispatched on the IOBP (IOBenPort) thread. Are you sure you want to do it @danielmarbach ?

Of course! Here is my rough draft
public async Ben Awesome(string itis) {
   await Food().ConfigureAwait(ben);
}

It will be using the Ben Continuation model. It will also be possible to write arbitrary ben-like types.
Everything will be dispatched with the BenScheduler. Paging in @stephentoub and @ljw1004 to get this going!

I just had an amazing revelation. With arbitrary ben-like types, I can write System.Daniel, write an arbitrary ben-like type and then
I CAN BECOME BEN!
MUAHAHAHAHA

I think we need anonymous Ben types (we can start with his alter ego ;-))

we can start with his alter ego

Mild mannered reporter ;-)


The HiGHS methods for linprog have been thoroughly tested in the last few SciPy releases and have demonstrated that they are (much) faster and more robust than the original methods. This PR makes method='highs' the default and deprecates method='simplex', method='revised simplex', and method='interior-point'.
Additional information

[x] We need to send an email to the mailing list before this is merged.

In scikit-learn's QuantileRegressor, we repeatedly observed the superiority of the HiGHS methods. Therefore, I would welcome the proposed change.

Great. Let's give it a week for comments and merge on 2/9 if there are no objections.

@tupui @mckib2 @Kai-Striega @ev-br I sent the message to the mailing list about one week ago. Would one of you like to merge this tomorrow if no objections come up before then?
@h-vetinari I agree "two releases" is more likely to be interpreted as two bug-fix releases. Let's going ahead and merge this as-is and I'll come back and fix this and the gh-13490 wording once gh-15528 is resolved. Sound good?

@tupui @mckib2 @Kai-Striega @ev-br I sent the message to the mailing list about one week ago. Would one of you like to merge this tomorrow if no objections come up before then?
@h-vetinari I agree "two releases" is more likely to be interpreted as two bug-fix releases. Let's going ahead and merge this as-is and I'll come back and fix this and the gh-13490 wording once gh-15528 is resolved. Sound good?

Happy to do the honour tomorrow 😉


[AutoRelease] t2-elasticsan-2024-08-21-47787(can only be merged by SDK owner)

https://github.com/Azure/sdk-release-request/issues/5403
Recording test success
https://dev.azure.com/azure-sdk/internal/_build?definitionId=5643

issue link:https://github.com/Azure/sdk-release-request/issues/5403