mouse events not being captured

We are inserting an iframe into a tile and having problems resizing the tile.
If you try to grow the tile there are no problems.
If you try to shrink the tile and move your mouse too fast then the mouse 'lets go' of the resize icon and the resize fails. If you move slow enough the resize works.
I'm wondering if you have failed to do a mouseCapture on the click event to ensure that you get all mouse moves until the mouse is released.
e.g.
function mouseDown(e) {
  e.target.setCapture();
  e.target.addEventListener("mousemove", mouseMoved, false);
}

The above ensures that all mouse events are captured.
Sorry but I'm not a good enough javascript programmer to submit a patch.

It sounds like the iframe might be capturing the clicks, as you've mentioned. Could you provide a jsfiddle for us to see the bug in action, please?

JSFiddel that reproduces the problem
https://jsfiddle.net/rlsutton1/j5m811zx/

Though I haven't tried, this might help: http://api.jqueryui.com/draggable/#option-iframeFix -- will look into adding this to the next update.

Just ran into this.
I noticed you can make it smaller if you move your mouse outside of the iframe content so that the main window can capture your events.

An easy css only approach.
  .grid-stack-item.ui-resizable-resizing iframe {
      pointer-events: none;
  }


Remove unneeded z-index

z-index was added on image component causing an undesired behaviour, see video:
https://github.com/WoodWing/studio-component-set-tools/assets/29701574/2c2ea44a-54e6-4d4f-8c93-e9f55093109c
Images with positioning left or right had a z-index: 1 making them appear over the infogram iframe.
For container component this z-index is also removed since it is not having any effect since the placeholder has position static:

I could not find any drawbacks when removing z-index, but I could be missing some scenario, for this reason I would like some input from @ruudjungbacker since he added those z-index a while ago.

Removed this PR since changes are applied on a test folder


Infinite Stomach

When I installed this mod on both the server and the client and played it, one of the animals ate all the food at an incredible rate. This problem did not occur in single player.

Possibly related to my recent suggestion #31 - animals will feed even if they are on breeding cooldown and/or if there is no suitable mate nearby. Tested on singleplayer MC 1.21 NeoForge


Implement elements factories

Because of new Vehicle(...).AssociateWith(this.server) looks a bit weird, i'm suggesting to make element factory for each element type.
singleton, class VehicleFactory with easy to use methods like factory.CreateVehicle() ( for vehicles ), factory.CreateColCuboid() ( for colshapes ) with automatically associate element with server, using element pool.

A couple concerns with this issue:

@CrosRoad95#6984 I'm looking at this issue you made:
https://github.com/mta-slipe/Slipe-Server/issues/249
Now I have a couple concerns and I wonder if you thought about them as well when making the issue, or know of any solutions.
Primarily, people can inherit from our base element classes for their projects, so at that point element factories would be relatively pointless, since they would only instantiate our default classes, and not their extensions.
Or we would require the element factories to be configurable, saying class X should be the default for element type Y.
Another thing is the object pooling, this also could be quite difficult for inherited classes since an instance would need to be properly reset. For packets we force a Reset method to be implemented, which we can do because generally packets aren't inherited from, but with elements this is different.


Add receiver's status to alert endpoint

This pull request is related to https://github.com/prometheus/alertmanager/issues/2832
It will add status to receivers in Alert API
The receiver could be muted or active depending of the mute/active time intervals

Currently it is a work in progress, The next part is regenerate the api code using swag. but I have a question here.
Is there a specific version I should use to generate the api code?
And about the license on each file is there a way to pass the license to the tool or after I generate the api code again I should re-add the license in each generated file?

Could you take a look?
About the front-end part, I will need help there.
Thanks

Reminder for the project devs,  0.24 should include this pull request, when complete, as #2778 did not address the API and UI for muted alerts.

@simonpasquier sorry for ping but could you please take a look and review this PR? Thanks.

Any chance this PR could be moved forward? That'd be awesome, we would immediately benefit from the new functionality

Thank you all for helping us prioritise this - I'll take a look at it over the course of the week.

Is there some specific issue with the pull request that has stalled it or did it just slip through the cracks? Totally understandable if it's the latter, just wanted to understand whether there's possibly anything concrete that could be done

API and UI are not addressed yet.


Problems crafting efficiency dimlets

I have been playing FTB Infinity 1.2.0 and I've been trying to craft a Special Efficiency Dimlet in the workbench, and it isn't working.
If I understand correctly these should be the right parts: dimlet base, rarity 5 circuit, advanced energy, advanced memory, special controller, efficiency essence (which is another issue: it will not craft according to the NEI recipe on 2.53 but would on 2.50), but nothing happens.

Can you clarify? You mean that it also doesn't work in 2.53?

Crafting the Special efficiency dimlet in the workbench does not work in 2.53 nor 2.50, and crafting the Efficiency essence using the recipe from NEI worked in 2.50 but does not in 2.53.
However if I take an efficiency essence that was crafted in 2.50 an uncraft it in an Uncrafting Table from Twilight Forest mod, I can then recraft those items into the efficiency essence.

Can you describe to me exactly how you are crafting the efficiency essence? I will try to do it myself. You're using a enchanted diamond pickaxe. right?

Yes. An Efficiency III enchanted Diamond pickaxe in the top center, ender eye in the middle left, middle right, and bottom center slots, and a nether star in the middle center slot.

Hmm, works perfectly for me:
http://i.imgur.com/txuseDu.png
Going to do a few more tests in some specific modpacks but I see no problem so far

This is what I see: http://i.imgur.com/1as6aTd.png
Strange thing is the same recipe worked in 2.50, before I tried changing to 2.53 to see if that fixed the efficiency dimlet in the workbench (unless I just have the recipe wrong there but it looked right.)
And if I just uncraft one and craft it together again it works fine. Huh.

Ah, you are doing it in AE. Could you try in a regular crafting table? Maybe there is a mod interaction problem with AE here.

Same thing. Also here is the pick I'm trying to use:
http://i.imgur.com/AX6fqIG.png

Very weird... At the moment I have no explanation. I will investigate this further.

After doing some more testing, I've discovered that crafting for the efficiency essence for me breaks at version 2.52 (meaning it works on 2.51 or earlier) which is also the same version that fixed a bug in efficiency essence and environmental module crafting.

Ok thanks for the testing. I will investigate this further. If I can't find a real solution I'll probably make a custom machine to do the crafting instead. Or else I tweak the recipe somehow.

I got some help from someone and we think we know what is wrong. I'll implement a fix for next version.

Ok, I fixed the problem I think. At least it still works for me and I hope it will now work for you too. I also fixed the actualy efficiency dimlet creation in the workbench as that was also broken. The latest dev build which you can find here:
https://drone.io/github.com/McJty/RFTools/files
should have the fix. Please reopen if it is still not working for you with that build.


Handling Calibration Factors

Calibration Factors as defined in the earlier model only pertains to Operations with spatial data, mapping to a defined Data Variable.   Missing is how to apply a calibration to any machine total that may have been calculated.

If we retain the optional mapping to Logged Variable Id, this is a non-issue.  Closing.


The dashboard is suffering from the same issue regarding the too many clients in postgres

@alex-hancock , I'm getting a similar issue on the dashboard with regards to connections to a postgres SQL database. Just wanted to give you a heads-up. Maybe the solution I (or others) work on may be usable on the action service monitor

So, Walt has been restarting the Postgres db, which should kill all current client connections, but all spawned connections to the action service db close their connection as of the last commit or so. I don't know if there's some flaw in the implementation or if the patch is just insufficient.

Here is the stack trace. It should be the same as the one present in the action service:
[pid: 29|app: 0|req: 126/195] <IP_ADDRESS> () {54 vars in 1329 bytes} [Wed Oct 18 18:15:25 2017] GET /index.html => generated 291 bytes in 4 msecs (HTTP/1.0 500) 2 headers in 84 bytes (1 switches on core 0)
[2017-10-18 18:15:28,239] ERROR in app: Exception on / [GET]
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1982, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1614, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1517, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1612, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1598, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "./app.py", line 186, in index
    return html_rend('index')
  File "./app.py", line 210, in html_rend
    plot_points = burndown()
  File "./app.py", line 175, in burndown
    total_jobs = [int(x.total_jobs) for x in get_all()]
  File "./models.py", line 43, in get_all
    q = s.query(Burndown).order_by(Burndown.captured_date.asc()).all()
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 2638, in all
    return list(self)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 2790, in __iter__
    return self._execute_and_instances(context)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 2811, in _execute_and_instances
    close_with_result=True)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 2820, in _get_bind_args
    **kw
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 2802, in _connection_from_session
    conn = self.session.connection(**kw)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 966, in connection
    execution_options=execution_options)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 971, in _connection_for_bind
    engine, execution_options)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 403, in _connection_for_bind
    conn = bind.contextual_connect()
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 2103, in contextual_connect
    self._wrap_pool_connect(self.pool.connect, None),
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 2142, in _wrap_pool_connect
    e, dialect, self)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1456, in _handle_dbapi_exception_noconnection
    exc_info
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 2138, in _wrap_pool_connect
    return fn()
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/pool.py", line 387, in connect
    return _ConnectionFairy._checkout(self)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/pool.py", line 766, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/pool.py", line 516, in checkout
    rec = pool._do_get()
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/pool.py", line 1138, in _do_get
    self._dec_overflow()
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/langhelpers.py", line 60, in __exit__
    compat.reraise(exc_type, exc_value, exc_tb)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/pool.py", line 1135, in _do_get
    return self._create_connection()
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/pool.py", line 333, in _create_connection
    return _ConnectionRecord(self)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/pool.py", line 461, in __init__
    self.__connect(first_connect_check=True)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/pool.py", line 651, in __connect
    connection = pool._invoke_creator(self)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/strategies.py", line 105, in connect
    return dialect.connect(*cargs, **cparams)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line 393, in connect
    return self.dbapi.connect(*cargs, **cparams)
  File "/usr/local/lib/python2.7/dist-packages/psycopg2/__init__.py", line 164, in connect
    conn = _connect(dsn, connection_factory=connection_factory, async=async)
OperationalError: (psycopg2.OperationalError) FATAL:  sorry, too many clients already

It seems we need to do a .dispose() on all the Engines and a .close_all() on all the sessions. Hopefully this will solve the problem. I'm still unsure of how we would go about testing this issue.

Answered in dcc-dashboard-service, corresponding PR for dcc-dashboard to follow.


[Question]: DocumentSummaryIndex how could i change  the  default summarize language

Question Validation

[X] I have searched both the documentation and discord for an answer.

Question
city_docs = []
for file in pdf_files:
    docs = SimpleDirectoryReader(
        input_files=[file]
    ).load_data()
    title = file.split(':')[0]
    docs[0].doc_id = title
    city_docs.extend(docs)

# LLM (gpt-3.5-turbo)
**system_prompt="Always respond in Chinese"**
chatgpt = OpenAI(temperature=0, model="gpt-3.5-turbo",api_base=api_base1,api_key=api_key1,system_prompt=system_prompt)
service_context = ServiceContext.from_defaults(llm=chatgpt, chunk_size=1024)

from llama_index.prompts import SelectorPromptTemplate
from llama_index.prompts.chat_prompts import (
    CHAT_REFINE_PROMPT,
    CHAT_REFINE_TABLE_CONTEXT_PROMPT,
    CHAT_TEXT_QA_PROMPT,
    CHAT_TREE_SUMMARIZE_PROMPT,
)
from llama_index.prompts.default_prompts import (
    DEFAULT_TREE_SUMMARIZE_PROMPT,
)
from llama_index.prompts.utils import is_chat_model
from llama_index.prompts.base import PromptTemplate
from llama_index.prompts.prompt_type import PromptType

DEFAULT_TREE_SUMMARIZE_TMPL = (
    "Context information from multiple sources is below.\n"
    "---------------------\n"
    "{context_str}\n"
    "---------------------\n"
    "Given the information from multiple sources and not prior knowledge, "
    "answer the query below.**Always respond in Chinese.**\n"
    "Query: {query_str}\n"
    "Answer: "
)
DEFAULT_TREE_SUMMARIZE_PROMPT = PromptTemplate(
    DEFAULT_TREE_SUMMARIZE_TMPL, prompt_type=PromptType.SUMMARY
)

summary_template = SelectorPromptTemplate(
    default_template=DEFAULT_TREE_SUMMARIZE_PROMPT,
    conditionals=[(is_chat_model, CHAT_TREE_SUMMARIZE_PROMPT)],
)

# default mode of building the index
response_synthesizer = get_response_synthesizer(
    response_mode="tree_summarize", use_async=True,summary_template=summary_template
)
doc_summary_index = DocumentSummaryIndex.from_documents(
    city_docs,
    service_context=service_context,
    response_synthesizer=response_synthesizer,
    show_progress=True,
)

doc_summary_index.storage_context.persist("index")

when i persit it to the local,we got five files:
├── default__vector_store.json
├── docstore.json
├── graph_store.json
├── image__vector_store.json
└── index_store.json
in the docstore.json:
the summarze language defaut is english,how could i change it to another language:
although i add the system_prompt ,but didn't work:
chatgpt = OpenAI(temperature=0, model="gpt-3.5-turbo",api_base=api_base1,api_key=api_key1,system_prompt=system_prompt)
"text": "The provided text is about the city of Boston, Massachusetts, and covers various aspects of the city's history, geography, demographics, economy, education system, healthcare, culture, climate, landmarks, and more. It provides information on significant events in Boston's history, such as the

I think you probably need to tune more on prompt engineering.
for your raw document data, are they in English or Chinese?

o
thanks for your reply.
my raw data is Chinese. i have solved the issue,the way is to change the prompt,there 2 ways:
1 way,change the  summary_template in the  get_response_synthesizer method

# Define a new summary template
new_summary_tmpl_str = (
    "Context information from multiple sources is below.\n"
    "---------------------\n"
    "{context_str}\n"
    "---------------------\n"
    "Given the information from multiple sources and not prior knowledge, "
    "answer the query below. Always respond in Chinese.\n"
    "Query: {query_str}\n"
    "Answer: "
)
new_summary_tmpl = PromptTemplate(new_summary_tmpl_str)

# Create a response synthesizer with the new summary template
response_synthesizer = get_response_synthesizer(
    response_mode="tree_summarize", use_async=True, summary_template=new_summary_tmpl
)

second way ,just as the robot said, moify the summary_query,but there isn't  summary_query in the method DocumentSummaryIndex.from_documents, the method is in his parent class BaseIndex, so i need to add a  cls method in the DocumentSummaryIndex.
class DocumentSummaryIndex(BaseIndex[IndexDocumentSummary]):
    # ... [其他已有的代码] ...

    @classmethod
    def from_documents(
        cls,
        documents: Sequence[Document],
        summary_query: str = DEFAULT_SUMMARY_QUERY,
        response_synthesizer: Optional[BaseSynthesizer] = None,
        storage_context: Optional[StorageContext] = None,
        service_context: Optional[ServiceContext] = None,
        show_progress: bool = False,
        **kwargs: Any,
    ) -> 'DocumentSummaryIndex':
        # 设置存储上下文和服务上下文
        storage_context = storage_context or StorageContext.from_defaults()
        service_context = service_context or ServiceContext.from_defaults()

        # 初始化文档存储
        docstore = storage_context.docstore

        # 在构建索引的过程中记录回调
        with service_context.callback_manager.as_trace("index_construction"):
            for doc in documents:
                # 设置文档的哈希值
                docstore.set_document_hash(doc.get_doc_id(), doc.hash)

            # 运行转换过程，将文档转换为节点
            nodes = run_transformations(
                documents,
                service_context.transformations,
                show_progress=show_progress,
                **kwargs,
            )

            # 使用节点及特定参数创建 DocumentSummaryIndex 实例
            return cls(
                nodes=nodes,
                response_synthesizer=response_synthesizer,
                summary_query=summary_query,
                storage_context=storage_context,
                service_context=service_context,
                show_progress=show_progress,
                **kwargs,
            )

@fengyunzaidushi
How many original documents do you have to initialize? Is the LLM you use in a server local path? I encountered a problem here. When initializing  many documents (more than 10,000) as DocumentSummaryIndex , it always prompts that the API connection has timed out. Can you help please.
The detail of the  problem  bellow:
#10184


Add repository overview page

Resolved / Related Issues
Items resolved / related issues by this PR.

Closes #23

Details of Changes
Add details of changes here.

Home button in the toolbar is available.
Fixed bad sizing of Pinned repositories cards in the Profile View.
Update star button visiblity

Validation
How did you test these changes?

[x] Built and ran the app
[ ] Tested the changes for accessibility

Screenshots (optional)
Fix sizing and wrap repo name and repo description:

we maybe lose the credibility of the repository significantly, but for the time being, can I approve the pull request with my observer account (@fluenthub-observer)? or should I wait?


Icons not centered after updating windows

Describe the bug
After updating windows 10 today, the task bar icons are not centered, and opening TaskbarX Configurator and pressing restart does not fix it (sometimes icons were not centered on startup for me in the past, and that fixed it)
To Reproduce
Steps to reproduce the behavior:

Login to windows
See that icons are not centered
Open taskbarX configurator
Press "Restart TaskbarX" button
See that icons are still not centered

Expected behavior
Icons should be centered
Screenshots

Desktop (please complete the following information):

OS: Windows 10
Version 21H2 build 19044.1645

Additional context
These two updates were installed today right before I started having this problem:

https://support.microsoft.com/en-us/topic/april-12-2022-kb5012117-cumulative-update-for-net-framework-3-5-and-4-8-for-windows-10-version-20h2-windows-server-version-20h2-windows-10-version-21h1-and-windows-10-version-21h2-7214b844-c002-49e4-9962-773e964ff737
https://support.microsoft.com/en-us/topic/april-12-2022-kb5012599-os-builds-19042-1645-19043-1645-and-19044-1645-548cc67c-7f12-46fd-878e-589ba81ac2f5

I'm having the same issues after installing the identical updates (KB5012117 & KB5012599) on the same Windows 10 21H2 build 19044.1645.
Only difference is that I am on a laptop, Acer Aspire 5.

I was having the same issue, updated TaskbarX to the latest version and it's fixed

I can confirm that updating to prerelease <IP_ADDRESS>  fixed the issue

I have the same issue after update on 1.7.2. Update to 1.7.6 fixed the issue.

I'm closing this issue as it seems to have been fixed in >=1.7.6


Use webpack 2 and webpack-devserver

Since you don't have a backend, using webpack-devserver is better than ws and webpack -w.
Webpack 2 with treeshaking will hopefully provided smaller bundle size.

[ ] webpack 2
[ ] webpack-devserver

[ ] React hot reloading

#104 rewrite branch deals with it. Should ship with 0.6.0


proposal: Navigation/BACK action gets key for router ID, so disconnected Navigators respond individually

Current Behavior
Currently, say, if you have 2 visible but disconnected Navigator "families" (e.g. a StackNavigator, and a Modal, which in it has another StackNavigator), both Navigators will respond to a Navigation/BACK action, when you really just want the modal navigator responding.
Another use case is, say, if you have a custom drawer that has a Navigator within it (using contentComponent), which appears simultaneously while you can see a sliver of your main app behind it. Again, you have 2 simultaneously visible routers both responding to BACK actions, when your intent is for only one of them to respond. Navigators are powerful and getting more animation capabilities--people are going to have more and more "disconnected router families," especially in medium to large-sized apps.
The current workaround is to identify some state in your reducer that determines what router the user is currently acting within, and then only update the state of the router you determine the action was for. Here's a quick example of how I do it within a DrawerNavigator:
export default function DrawerStackFamily(state, action) => {
  if (action.type === 'Navigation/BACK' && state.index === 1) { // drawer is open, and other navigator should respond
    return state
  }
  return MyDrawer.router.getStateForAction(action, state) || state
}

// This router doesn't need to worry about avoiding other BACK actions
// as when it is visible, all actions will correspond just to this router.
export default function ModalStackFamily(state, action) => {
  return MyStack.router.getStateForAction(action, state) || state
}

To make it more concrete, here's what your navigator families might look like:

DrawerRouter
--> DrawerClosed -> StackRouter: { scene1: TabRouter -> ..., sceneEtc: PushedPage }
--> DrawerOpen.contentComponent: AnotherStackRouter

note: arrows indicate proper router "connections," which form the lineage of a router family.

So, this is just an example. In my opinion, the solution doesn't include not having multiple disconnected routers. If so, please enlighten me. I already have many needs for multiple disconnected routers, and I know how to make use of what I'm calling "router families" very idiomatically (where you assign a Navigator to the screen prop within routeConfig entries), eg: TabRouter -> StackRouter or DrawerRouter -> StackRouter: { scene1: TabRouter, sceneEtc: PushedPage }. It still doesn't solve all my uses cases. Not at all.
PROPOSAL: Expected Behavior (suggesting a change/improvement)
Dispense these actions instead:
const action = {
   type: 'Navigation/BACK',
   routerId: 'DrawerRouter' | 'AnotherStackRouter'
   key: null
}

And then build into the router's getStateForAction method inference of whether to update its state, based on whether the ID corresponds to it. Straightforward.
Potential problems?

Similarly, the same behavior happens with 'Navigation/RESET' and it would be great to indicate which router it should reset.

This is actually a core issue everywhere. Nested navigators (such as TabNavigator within StackNavigator as in the main example in the documentation) should dispatch actions that indicate which Parent navigator they are nested within. See this other issue of mine:
https://github.com/react-community/react-navigation/issues/1508
For example, in StackNavigator -> TabNavigator, the tabs dispatch a flat action instead of an action with a nested action. The latter is what you would get if you called getActionForPathAndParams on the corresponding path. However, getStateForAction doesn't handle it appropriately (https://github.com/react-community/react-navigation/issues/1508).
Imho, this stuff (though very advanced usage) needs to be handled before 1.0 or a very bad precedents will be set where people will be dispatching flat actions all over the place, and writing all sorts of workarounds in their reducers to guess which reducer actions are meant for.
As it stands, the entire deep-linking system cannot be used in professional apps. It's close, but for it to be complete links must generate the exact same state as the actions dispatched from the buttons built into the navigators. Buttons built into the navigators generate flat actions, where as actions generated from nested paths generated nested actions. It's not correct.
And to be sure it's a challenging problem--probably because the expected result is dependent on which type of router is nested in which type of parent router. I'm working on changes to StackRouter.getStateForAction to see if I can at least solve this for the concrete relationship of StackRouter -> TabRouter (as in the primary example in the documentation).

Here's a preliminary PR to address this:
https://github.com/react-community/react-navigation/issues/1508
Here's how it works:
export const MyStack = StackNavigator(routeConfigs, {
   navKey: 'myStack'
})

Sample action dispatched:
const action = {
   type: 'Navigation/NAVIGATE',
   routeName: 'Foo',
   navKey: 'myStack'
}

reducer:
import MyStack from '../components/MyStack'

const myStackReducer = (state, action) =>
 MyStack.router.getStateForAction(action, state) || state

combineReducers({ myStack: myStackReducer })

The primary mechanism to achieve this is in addNavigationHelpers:
// ...
export default function<S: *>(navigation: NavigationProp<S, NavigationAction>) {
  const oldDispatch = navigation.dispatch

  navigation.dispatch = (action: NavigationAction): NavigationAction => {
    action.navKey = typeof action.navKey !== 'undefined'
      ? action.navKey
      : navigation.navKey

    return oldDispatch(action)
  }

  return {
    ...navigation,
    goBack: (key?: ?string): boolean =>
      //...

Then in getStateForAction for all routers you have (simplified):
getStateForAction(action, state) {
      if (action.navKey && action.navKey !== navKey) {
        return state
      }
     // ...

note: if you dispatch action.navKey === null, all reducers (and accordingly independent router families) will be able to respond to the action. This is obviously intentional. It allows code in any Navigator to dispatch automatically to itself, to everyone by specifying null or even directly to a different Navigator family by specifying its navKey. It's my belief that this is the state of the art and the future of react-navigation when it comes to redux-integration :).

The primary remaining consideration is directly targeting nested routers. Currently there are issues with deep-linking where if you take a path, convert it to an action via router.getActionForPathAndParams the resulting action (which can will nested actions) isn't handled the same way a flat action is handled, which attempts to let child routers handle it in getStateForAction. So perhaps simply fixing that bug (which I have a have another PR which attempts to at least solve part of it: https://github.com/react-community/react-navigation/pull/1515), will solve the problem of dispatching actions within one router family that targets another router family. But if not, this PR may want to be amended to allow for child routers (which don't have a corresponding reducer of their own), to still have their own navKey, which can be directly targeted, even though their state is calculated in a parent reducer.


Program doesn't initialize, seemingly randomly

Title is self explanatory. I will reload the window over and over and over and nothing initializes and I receive a There is no data provider registered that can provide view data. message in the CWTOOLS LOADED FILES, but then, seemingly out of nowhere, it initializes and works fine all day after that?
Not sure what I can do to prevent this but it can be quite a setback.
If there's anything I can provide to help with troubleshooting please let me know!

I think this has been resolved: it was to do with certain panels in VSCode counting as text editors and giving a "language" of "none". I've added a workaround.

Wonderful! Glad to hear. Thank you 👍


More documentation on using blackboards

Hello and sorry to bother! I've been really enjoying using your plugin! But I've haven't really found a way to use blackboards.
Could you explain it to me or add more documentation?
Thank you in advance,
Miguel Silva

Also, sorry to bother again. I'm trying to make this simple AI but I have a problem.
If MoveToRandomPoint is RUNNING, it does not check if it is SeeingPlayer. How do you think I could do this?

Thanks in advance,
Miguel Silva

@mrjshzk for any issues or questions regarding the behaviour of beehave, feel free to open a new discussion or ask the community on our Discord.

Closed by https://github.com/bitbrain/beehave/pull/283


Update install_plugin.sh for KiCad 7.0

I commented on #71 ("kicad 7?") about the install_plugin.sh file needing to be updated for KiCad 7.0, but with the context of all the other discussion under that issue, the comment relating to KiCad 7.0 compatibility could be misunderstood, so, as requested, I'm opening up another issue:
While I didn't really test running KiRI through the plugin button yet, I can already report that for it to even show up in KiCad 7.0, it needs to be copied to the correct folder, but the install_plugin.sh script ran by the KiRI installer script only supports KiCad 5.1 and 6.0 - for 6.0 the plugin path is hardcoded:
	if [[ -d "$HOME/.local/share/kicad/6.0/" ]]; then (...)

The path only differs by the version number and everything else is the same, so all that is needed to fix it is to copy a couple of lines and replace "6.0" by "7.0", but until then the plugin won't install in KiCad 7.0.

Interesting, thanks for the feedback. I never used .bash_profile.  What is your Operating System and version, by the way?

Debian 12.1 with no DE, just Xorg + i3wm on top of that, which might have something to do with it or not. KiCad 7.0.7 compiled from source.


Enhance authorize Middleware to Include Role-Based Access Control

The current authorize middleware in jwtfilter.js verifies the JWT token and attaches the user information to the request object. However, it does not enforce role-based access control. We need to enhance this middleware to accept a user role as a parameter and restrict access to the endpoint based on the user's role. This will ensure that only users with the appropriate roles can access certain resources.

Fixat


Turning off line wrapping in the iPython console

Description of your problem
Now that the regular python console was removed in Spyder 3.2, we really need to be able to turn off the text wrapping in the iPython console. Our outputs of large tables and arrays are unreadable due to the line wrapping.
I would suggest an option in the preference menu similar to the one that had existed for the python console for a long time.
What steps will reproduce the problem?

Running any code in ipython script
Displaying a big table or array (or long text). The table will wrap and be almost unreadable due to the line wrapping.

What is the expected output? What do you see instead?
Please provide any additional information below
Versions and main components

Spyder Version: 3.2
Python Version: 2.7
Qt Version:
PyQt Version:
Operating system:

Dependencies
Please go to the menu entry Help > Optional Dependencies (or
Help > Dependencies), press the button Copy to clipboard
and paste the contents below:

Please open an issue about this in
https://github.com/jupyter/qtconsole
We can't do anything about it in Spyder.


E/FrameEvents( 3079): updateAcquireFence: Did not find frame.

I run and get below issue, please guide:
E/FrameEvents( 3079): updateAcquireFence: Did not find frame.

I will describe the problem in more detail: on android, during the display of 3d scenes, errors "updateAcquireFence: Did not find frame" are poured into the console, because of this, the 3d scene slows down. Is there a fix for this bug?

Can you give me the example code for debugging?


Compile Error on mysql-chef_gem: could not find recipe default for cookbook mysql-chef_gem

It seems as if the mysql-chef_gem cookbook was edited 3 days ago but the database cookbook was not edited to match the new requirements. The Recipe folder in mysql-chef_gem was removed and the database cookbook is including the default recipe in its mysql.rb recipe... Based on what the new readme says on the mysql-chef_gem cookbook, shouldn't the include_recipe statement be removed from the mysql.rb recipe and replaced by the resource that uses the lwrp? (since that resource is now missing from the default recipe of the mysql-chef_gem?)

same here... Thanks

https://github.com/opscode-cookbooks/database/issues/99

@sandoracs  thanks you solution worked for me as well, it will be great if chef database cookbook owners update this


Update metadatadictionary

Hi @allaway @anngvu
Can we update this? / could someone show me how?
https://nf-osi.github.io/nf-metadata-dictionary
It says "Last updated on 2022-12-09" so I assume that is accurate.
Thanks!

Hey @anngvu , I think it wuold just be re-running this https://github.com/nf-osi/nf-metadata-dictionary/blob/main/docs/index.Rmd and updating the results here: https://github.com/nf-osi/nf-metadata-dictionary/blob/main/docs/index.html
However, what do you think about making this an Action so it just happens automatically on every new release?

(now I see there's actually an issue for that already: https://github.com/nf-osi/nf-metadata-dictionary/issues/154)


MPT-7B on single A100 80GB

Is it possible to do pretraining of MPT-7B model on single A100 80GB ?
I am getting OOM with following minimal configs:

global_train_batch_size = 1
device_train_microbatch_size = 1
device_eval_batch_size = 1
activation_checkpointing = true
activation_cpu_offload = true
max_seq_len: 2048 # tried 512 as well
precision: amp_bf16

I have seen llama 7B being trained on single GPU.
Is there anything that needs to be modified for this MPT-7B pretraining? Am I missing something?

Hey, a 7B model w/ DecoupledAdamW will utilize 7B * 12 Bytes / param of memory = 84GB. So with AdamW it is expected to OOM.


Add proxy support

Add https/https proxy support for enterprise environments

@noelo Mind explaining more in detail what you'd like added? I'm assuming https / proxy support for connecting to certain OpenShift clusters?

I'm going to close this for now. If you can update us later that'd be great @noelo !

I'm assuming https / proxy support for connecting to certain OpenShift clusters?

Is this assumption reflective of the fact that there is no proxy support? I'm struggling to get this working. A simple login appears to partially work, but I think that is because the login is piggybacking off basic oc login functionality... then failing on simple queries:

I have tried setting all_proxy, which I noticed in the source code, but this did nothing. The only (extremely hacky) solution I have found that works is to route the api calls through an SSH tunnel that bypasses the proxy altogether. Our proxy is extremely simple... no authentication, no exclusion list.
Running into the same problems in the IntelliJ plugin that wraps odo: https://github.com/redhat-developer/intellij-openshift-connector/issues/69 ... I was able to modify that plugin to at least bootstrap a GUI, but the underlying odo calls are all failing.

/open
this is a valid concern, odo should work with proxy settings

Definitely not stale. Still very annoying that I have to open up the SSH tunnel daily for just this tool.
/remove-lifecycle stale

/remove-lifecycle rotten

@mohammedzee1000 going to make a note here about the approach he's going to follow the problem. We have all the other info we need.

It looks like the proxy server is not being taken into account. I am investigating how oc login handles this as it seems to work.
Another option is to use the proxy envs HTTP_PROXY and HTTPS_PROXY.
I am taking @amitkrout help to setup a proxy env which should be available tomorrow, and then should be able to present more concrete answers

We did the proxy support in IntelliJ OpenShift Connector based on HTTPS_PROXY and seems odo is honoring this variable so I think it's ok

Ok so I am still looking at how oc does it.
Other that that, what we could do with env is:

Document users to set the env or
Have a preference for proxy, for eg OPENSHIFT_PROXY. If it is set then we set env before running a command, do the command and then unset the env automatically

Do 1., don't do 2. The whole world (go, Python, cURL are examples that I know of) is using HTTP(S)_PROXY env vars, don't try to be special.

I kind of agree with @stlaz here. What i want though is to confirm this is what oc does?

I'm assuming https / proxy support for connecting to certain OpenShift clusters?

Is this assumption reflective of the fact that there is no proxy support? I'm struggling to get this working. A simple login appears to partially work, but I think that is because the login is piggybacking off basic oc login functionality... then failing on simple queries:

I have tried setting all_proxy, which I noticed in the source code, but this did nothing. The only (extremely hacky) solution I have found that works is to route the api calls through an SSH tunnel that bypasses the proxy altogether. Our proxy is extremely simple... no authentication, no exclusion list.
Running into the same problems in the IntelliJ plugin that wraps odo: redhat-developer/intellij-openshift-connector#69 ... I was able to modify that plugin to at least bootstrap a GUI, but the underlying odo calls are all failing.

@greg-pendlebury can you verify if setting HTTP_PROXY and HTTPS_PROXY to your proxy server fixes your problem?

@stlaz this is what lead me to consider further investigation ^

@mohammedzee1000 no they do not. I definitely have those set because they are what let oc work the first place. It is odo functions that then proceed to fail after oc logs in.
I have just retested and confirmed it isn't working using v1.0.0-beta5 (quite old), but I haven't upgraded since I've never seen movement on these issues. Do you think this has been resolved elsewhere?

FWIW, I just upgraded and tested v1.2.3 and it still doesn't support proxies (that I can see). oc works in this terminal (through HTTP(S)_PROXY) but not odo

Well we do piggyback of client-go for all cluster activity. So the fact that it behaviour is really weird. @stlaz do you know anything about this?

For me odo supports proxy.
Here what I did:

started CRC on my Windows laptop
modified the Windows /hosts so that api.crc.testing is resolved to <IP_ADDRESS>
started tinyproxy using docker and modified the container hosts to that api.crc.testing is resolved to CRC IP
set HTTPS_PROXY to localhost:8888
with odo created a component, pushed it, added an URL and checked my microservices API works ok
stopped the tinyproxy
ensure odo commands are now failing

This is really strange indeed. I got feedback from openshift team. oc also uses client-go and according to them,
Both oc and kubectl are heavy users of client-go and AFAIR we don't have any special code for handling proxies. As long as you use transport which allows injecting these from env vars you should be good

@greg-pendlebury maybe we need to check is something different in you env?

Would you be willing to share the information about your env such as your env variables when you run the command etc. If you are scared that you will leak any dangerous information, then feel free to send it to my redhat email<EMAIL_ADDRESS>You can encrypt it using my gpg key

Based on email communication:
It looks like it works fine for @greg-pendlebury with http_proxy and https_proxy when he did it in an environment where a second path existed to reach the cluster via his internet connection.
The environment where he faced the problem was basically airgapped wtth proxy being the only way to reach the cluster. We will likely need to account for this

I have been trying to setup things on our internal openstack instance, where we already have an openshift cluster to try this out myself, but I have been hitting issues so far
What I am looking to setup (explain is representational):
Proxy node

Network

n1=shared network that can access outside world
n2=private network

squid proxy setup to allow all requests

Test Node

Network

n2=private network

oc and odo cli
http_proxy, https_proxy, all_proxy set to Proxy Node

Ok I have a setup
# On the squid proxy node
$ squidclient http://squid.nlanr.net/
HTTP/1.1 200 OK
Date: Mon, 10 Aug 2020 08:56:35 GMT
Server: Apache/2.4.25 (Debian)
Content-Length: 6918
Vary: Accept-Encoding
Content-Type: text/html; charset=ascii
X-Cache: MISS from test
X-Cache-Lookup: HIT from <redacted>:3128
Via: 1.1 test (squid/4.11)
Connection: close

<html>

<head>
<title>NLANR -- National Laboratory for Applied Network Research</title>
</head>
...
# From the test node
ping <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
From <IP_ADDRESS> icmp_seq=1 Destination Host Unreachable
From <IP_ADDRESS> icmp_seq=2 Destination Host Unreachable
From <IP_ADDRESS> icmp_seq=3 Destination Host Unreachable

$ export HTTP_PROXY=https://<redacted>:3128
$ export HTTPS_PROXY=https://<redacted>:3128
$ export http_proxy=https://<redacted>:3128
$ export https_proxy=https://<redacted>:3128
$ odo login -u <redacted> -p <redacted> https://redacted # ran this on a different computer to ensure isolation
# Copy kubeconfig content to proxy machine

Unable to reproduce. Seems like a env specific problem.
If you still face this problem, please reopen
/close


Segmentation fault when loading curved Gmsh mesh

I am trying to generate a curved mesh using quadratic elements with Gmsh. When trying to load the mesh using MFEM (e.g. the mesh-explorer miniapp) I get a segmentation fault. The mesh with linear elements can be loaded without any problems. I cannot seem to find anything wrong with the quadratic mesh and it can be loaded into Gmsh. Does anyone have any idea what I might be doing wrong?
geometry file (.geo):
Mesh.MshFileVersion = 2.2;

Point(1) = {0, 0, 0, 1.0};
Point(2) = {0.5, 0, 0, 1.0};
Point(3) = {1, 0, 0, 1.0};
Point(4) = {1, 1, 0, 1.0};
Point(5) = {-0, 1, 0, 1.0};
Point(6) = {-0, 0.5, 0, 1.0};

Circle(1) = {6, 1, 2};
Line(2) = {6, 5};
Line(3) = {5, 4};
Line(4) = {4, 3};
Line(5) = {3, 2};

Curve Loop(1) = {2, 3, 4, 5, -1};

Plane Surface(1) = {1};

Physical Curve(1) = {1};
Physical Curve(2) = {2};
Physical Curve(3) = {3};
Physical Curve(4) = {4};
Physical Curve(5) = {5};
Physical Surface(1) = {1};

mesh with linear elements:
$MeshFormat
2.2 0 8
$EndMeshFormat
$Nodes
8
1 0.5 0 0
2 1 0 0
3 1 1 0
4 -0 1 0
5 -0 0.5 0
6 0.3535533913981662 0.3535533897883814 0
7 0.6895299801724067 0.4136574664509627 0
8 0.4616109129283297 0.6709541058817441 0
$EndNodes
$Elements
14
1 1 2 1 1 5 6
2 1 2 1 1 6 1
3 1 2 2 2 5 4
4 1 2 3 3 4 3
5 1 2 4 4 3 2
6 1 2 5 5 2 1
7 2 2 1 1 5 4 8
8 2 2 1 1 6 5 8
9 2 2 1 1 3 7 8
10 2 2 1 1 2 1 7
11 2 2 1 1 1 6 7
12 2 2 1 1 7 6 8
13 2 2 1 1 4 3 8
14 2 2 1 1 3 2 7
$EndElements

mesh with quadratic elements:
$MeshFormat
2.2 0 8
$EndMeshFormat
$Nodes
23
1 0.5 0 0
2 1 0 0
3 1 1 0
4 -0 1 0
5 -0 0.5 0
6 0.3535533913981662 0.3535533897883814 0
7 0.1913417166168257 0.4619397660757584 0
8 0.4619397665017904 0.1913417155882935 0
9 0 0.7499999999993106 0
10 0.4999999999986718 1 0
11 1 0.5000000000013305 0
12 0.7500000000006894 0 0
13 0.6895299801724067 0.4136574664509627 0
14 0.4616109129283297 0.6709541058817441 0
15 0.2308054564641648 0.835477052940872 0
16 0.2308054564641648 0.585477052940872 0
17 0.4075821521632479 0.5122537478350627 0
18 0.8447649900862033 0.7068287332254813 0
19 0.5755704465503682 0.5423057861663534 0
20 0.7308054564641648 0.835477052940872 0
21 0.5947649900862033 0.2068287332254814 0
22 0.8447649900862033 0.2068287332254814 0
23 0.5215416857852865 0.383605428119672 0
$EndNodes
$Elements
14
1 8 2 1 1 5 6 7
2 8 2 1 1 6 1 8
3 8 2 2 2 5 4 9
4 8 2 3 3 4 3 10
5 8 2 4 4 3 2 11
6 8 2 5 5 2 1 12
7 9 2 1 1 5 4 14 9 15 16
8 9 2 1 1 6 5 14 7 16 17
9 9 2 1 1 3 13 14 18 19 20
10 9 2 1 1 2 1 13 12 21 22
11 9 2 1 1 1 6 13 8 23 21
12 9 2 1 1 13 6 14 23 17 19
13 9 2 1 1 4 3 14 10 20 15
14 9 2 1 1 3 2 13 11 22 18
$EndElements

The quadratic mesh looks like this:

Hi, @benzwick,
The problem seems to be the element orientations.  MFEM computes the determinants of triangular elements and swaps the order of the vertices of any triangles having negative determinants.  Unfortunately this procedure only works for linear elements.  Higher order elements require more care and MFEM just ignores this and swaps the first two vertices in either case.  Even more unfortunately, the algorithm doesn't even extract the vertices for higher order elements before trying to swap them so it just seg faults when accessing the NULL pointer which should point to the vertices.
This is clearly a bug and we'll try to devise a solution.  In the mean time you may be able to have Gmsh produce elements with the orientations that MFEM expects.  In your sample geo file just reverse the order of the curve loop:
Curve Loop(1) = {-2, -3, -4, -5, 1};

Sorry for the trouble and thanks for letting us know.
Best wishes,
Mark

Thanks @mlstowell, your solution works perfectly.
Regarding the ordering of the vertices:

MFEM computes the determinants of triangular elements and swaps the order of the vertices of any triangles having negative determinants.
...
In the mean time you may be able to have Gmsh produce elements with the orientations that MFEM expects.

Do you mean that Gmsh sometimes generates elements with negative determinants? Or does it have something to do with how MFEM reads the mesh file?

Hi, @benzwick ,
I'd need to dig a little deeper to be sure.  I suspect that Gmsh is producing perfectly fine triangles with positive Jacobian determinants.  MFEM assumes that elements in 2D meshes will obey a right-hand-rule when ordering their vertices.  Since Gmsh always produces meshes with coordinates in 3D it would be unreasonable to expect Gmsh to follow a right-hand-rule since the 2D mesh could describe a curved surface which may not even be orientable.  In such meshes (2D surfaces embedded in 3D) MFEM computes a rectangular Jacobian and computes a "determinant" for this by taking the cross product of the two rows of the Jacobian.  If this cross product is aligned with the z-axis then the "determinant" has a positive sign otherwise it is negative (I haven't verified this but I believe something like this is happening).  Most likely the current algorithm in MFEM dates from a time before support for surfaces in 3D was added and it probably needs to be updated.
Best wishes,
Mark

I hope @benzwick won't mind if I hijack this issue to discuss a possible solution.
@tzanio, @pazner, and @bslazarov, I'd like to hear your thoughts on this.  The crash occurs on the following line: https://github.com/mfem/mfem/blob/3454f1061d9bd1c3a4c36baf401c7c6dd435fab8/mesh/mesh.cpp#L4348
because the vi pointer is only set if there is no Nodes grid function.  In the 3D case the corresponding pointer is always set and the Swap succeeds.  However, wouldn't the Nodes grid function become invalid if the vertices are swapped?

Hi Mark,
This was reported in https://github.com/mfem/mfem/pull/1999 and will be fixed by https://github.com/mfem/mfem/pull/1936.
ping: @v-dobrev

That's great.  I guess I missed that one.  Thanks!

@mlstowell you were right, the original mesh that I was using had the node ordering reversed (see screenshot below). The ordering should be counterclockwise like this (https://gmsh.info/doc/texinfo/gmsh.html#Low-order-elements):
Triangle:               Triangle6:          Triangle9/10:          Triangle12/15:

v
^                                                                   2
|                                                                   | \
2                       2                    2                      9   8
|`\                     |`\                  | \                    |     \
|  `\                   |  `\                7   6                 10 (14)  7
|    `\                 5    `4              |     \                |         \
|      `\               |      `\            8  (9)  5             11 (12) (13) 6
|        `\             |        `\          |         \            |             \
0----------1 --> u      0-----3----1         0---3---4---1          0---3---4---5---1

However, I still don't understand why Gmsh would sometimes generate a mesh with the ordering reversed.

Regarding the reordering of nodes within MFEM: maybe it would be better not to do it automatically because, as in the case here, the fact that the nodes need to be reordered suggests that there is a problem with the mesh that should be addressed before loading it into MFEM. I would prefer if by default an error was raised if an element with negative Jacobian is encountered when reading a mesh file. This would also be easier to implement than attempting to reorder higher order elements.
See also these related comments:

https://github.com/mfem/mfem/pull/1936#issuecomment-742348852

Actually, now that I think about it: this happens only when the Mesh has Nodes (i.e. the mesh may be high-order), so just flipping the vertex indices may not be sufficient.

https://github.com/mfem/mfem/pull/1936#issuecomment-767640252

Should we mention somewhere that the fix_it options works only on low-order meshes (when Nodes == NULL)?

FYI the reversal of the node ordering in Gmsh for Physical Curve and Physical Volume is documented here and here:

In some mesh file formats (e.g. MSH2), specifying negative tags in the expression-list will reverse the orientation of the mesh elements belonging to the corresponding elementary curves in the saved mesh file.


[BUG]: ImportError: cannot import name 'ColoInitContext' from 'colossalai.zero'

🐛 Describe the bug

I am trying run the supervised fine tuning in Google Colab. Always get the Import error. I am not sure if this error only occurred in the Google Colab notebook?
Here is the command I am using:
!torchrun --standalone --nproc_per_node=4 train_sft.py \     --pretrain "./bloomz-560m" \     --model 'bloom' \     --strategy colossalai_zero2 \     --log_interval 10 \     --save_path  "./boomz-560m-finetuned" \     --dataset "./instinwild_ch_small.json" \     --batch_size 4 \     --accumulation_steps 8 \     --lr 2e-5 \     --max_datasets_size 512 \     --max_epochs 1 \     --grad_checkpoint
Environment
Google Colab Notebook;
Install Steps:

Install ColossalAI first
Install from ColossalAI/applications/Chat directory
Install the transformers taken from hpcaitech

Thank you! I appreciate it if anyone has the solution to running on colabs and let us know your solution.

I have found a temporary solution (I summarised it in this post), but I am still looking forward to the official updates to solve this issue. All the best to this project! :)


Remove some mocking from Event Hubs

Description
Completely removes the usage of Mockito in the Checkpoint Store libraries and cleans out some usages of Mockito in azure-messaging-eventhubs.
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[x] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[x] Pull request includes test coverage for the included changes.

API change check
API changes are not detected in this pull request.


Avoid using requests in tests

test_specific_package_environment_markers using requests
fails when requests is pre-installed via PYTHONPATH.
Closes https://github.com/pypa/pipenv/issues/3644

hm, so is the problem that the already installed version is being imported? if so, why?

It is being imported because it is in PYTHONPATH before the test runner is started.
This is needed because a rpm package contents are installed into a build root which isnt the same as the system image.
So the de-vendored requests exists in /usr/lib/python3.6/site-packages and pipenv exists at /foo/bar/build/root/usr/lib/python3.6/site-packages.
In order the run the tests, PYTHONPATH needs to be set to /usr/lib/python3.6/site-packages:/foo/bar/build/root/usr/lib/python3.6/site-packages.
I suspect there is a 'bug' in pipenv where it is not removing items from PYTHONPATH when it is running commands supposed to be inside the pipenv venv, so libraries in PYTHONPATH in the outer scope are accessible inside pipenv run.  I put 'bug' in quotes as de-vendoring is of course not supported, and shouldnt be until there are solid tests which confirm that pipenv works correctly when de-vendored.  At present I think the focus should be on identifying any ways in which pipenv misbehaves when de-vendored, so distros can decide whether the de-vendoring is more important than any resulting strange behaviour.  I'm also seeing some misbehaviour when the de-vendored packages were installed using only distutils instead of setuptools, or if the egg-info isnt present (both are scenarios which happen in rpm managed python packages, although I think openSUSE has egg-info installed with most packages, and I assume Fedora also does, so that may be less of a concern now-a-days.).

Won’t using tablib have the same problem anyway, just with a different package? If we’re to change that, I’d want it to be changed to an actual environment-free implementation.

@uranusjr , I provide this patch because it fixes the test in my de-vendored builds.  I also have a fix for test_pipenv_graph and test_pipenv_graph_reverse mentioned in https://github.com/pypa/pipenv/issues/3644, but need to polish it before I submit it.  The other five errors at https://github.com/pypa/pipenv/issues/3644 are probably the 'real' problems, where it should fail, and I havent started on those yet.
Using tablib doesnt have the same problem because tablib is not a dependency of pipenv, so it is not pre-installed into PYTHONPATH in order to test pipenv, and thus will not exist unless it is installed into the venv.  The markers in this test case prevent anything from being installed, so neither tablib nor requests should be accessible in the venv, but as I have explained requests does exist because it is in the outer scopes PYTHONPATH and somewhere pipenv isnt managing PYTHONPATH sufficiently to prevent it from existing inside the venv.  The underlying problem may even be impossible to solve, if pipenv needs to existing inside the venv, as that means a de-vendored pipenv will have all deps also existing inside the venv , and a hell of mess if the Pipfile requires different versions than pipenv.  However the underlying problem should have dedicated tests, and documentation about it (because de-vendorers will de-vendor anyway, unless the problems caused are very clear and verifiable), and it shouldnt trigger inexplicable failures all over the test suite.  Using requests here is one such trigger, and it is unnecessary as any module could be used in this test case - it doesnt need to be requests.

I see, thanks for the explanation.

Yeah that all makes sense to me, thanks for the details


⚠ Bofrost.fr has degraded performance

In 39e6eb3, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 2085 ms

Resolved: Bofrost.fr performance has improved in 04a4268.


Understanding tpc-c performance

Hello,
I was trying to understand, how does p4db get the 2x improvement in tpc-c? (Is it primarily reductions in remote access latency primarily, or reducing aborts caused by contention, or both)?
In section 7.5, "TPC-C experiments", the paper describes how performance (on distributed transactions) improves by reducing access conflicts, by around 2x. I saw in exp_j.csv, without the switch, the abort rate is very high (90%), which using the switch greatly reduces. I was wondering why such a large reduction in the abort rate (which presumably avoids lots of wasted work), yields only 2x improvement (sorry if I am misunderstanding something here)?
Regarding remote access latency, I also looked at figure 18 in the paper (the tpc-c latency breakdown). I saw the remote access latency drops almost in 1/2, which the paper explains by saying we don't need to go to the node, but can rather go to the switch, reducing RTT by half. My intuition was that for a given distributed transaction, which does 10 operations, when the remote probability is high (say 70-80%), isn't it likely that at least 1 operation will not be accelerated by the switch (so we still end up paying the node-to-node RTT penalty for that key)? Is the reason we get improvement that we are acquiring the (remote) locks serially? (I.e. we have the RTT for acquiring the first lock, then the RTT for the second lock, etc) all in serial- so an improvement on a significant number of keys helps a lot? If that is the case, I wasn't understanding, why can we not make the network requests for all remote keys in parallel?
One final unrelated question I had, how does p4db avoid packet drops by the switch? I noticed in the paper it says we spread the recirculations across many ports to avoid packet drops, I was wondering are there any additional mechanisms to avoid this when I am running experiments, or should spreading recircs across many ports be sufficient?
Thank you so much!

Hi,
it's both, abort-free execution of the hot switch transactions in 1/2 RTT.
The abort-rate is telling you how often a lock-acquisition failed because it is held by another transaction. So if you can do a try_lock for an item very fast, this "abort-rate" goes up. However if the lock-duration of this item can be reduced you can get more real throughput of committed transactions.
Yes, for tpc-c this would be a cold stock-item, the rest of the data can be held on the switch easily because of the small number of warehouses (e.g. next_order_id for districts).
The locks are all acquired serially and ordered by (index) to avoid deadlocks. If you want to do them in parallel you need to implement deadlock-detection + recovery which was not the scope of P4DB.
Actually in my experiments I never experienced any packet-drops on the switch, also not on the nodes. The switch can easily handle traffic. To avoid drops in the recirculating packets we adapted special settings for these ports to treat the traffic with higher priority and loss-less attributes (see https://github.com/DataManagementLab/p4db/blob/master/switch_src/01_control_plane/p4db.cpp#L187  also here for priority handling of packets that hold a lock on the switch https://github.com/DataManagementLab/p4db/blob/master/switch_src/tpcc/p4db_tpcc.p4#L251)
If you are able to generate to saturate the recirculation ports BW, then you need to spread it across multiple. Simple round-robin using a register-action should be sufficient.

Hi, thank you for your reply!
One follow up question I had regarding serial acquisition of locks, I was not understanding, why is deadlock detection/recovery necessary, at least if we are using the NO_WAIT protocol, isn't deadlock impossible? Like my understanding was in NO_WAIT, for any lock request that is already held by someone else, we will just abort? (And at worst, wait for a bounded time on the std::mutex in the no_wait.hpp implementation of local_lock?)
Sorry if I am missing something.
Thank you!

Yes, for NO_WAIT this is correct, but for WAIT_DIE locks can be added to a waiting-queue if their timestamp is valid and then they do not abort immediately.
Another point why serial acquisition might be useful is to avoid unnecessary network round-trips and load on the message handlers.

Oh ok, I understand now, thank you!


Beautifying SCSS removes newline in nested selectors

I tried running this example in prettydiff (which is the default for SCSS) but I could not get it to reproduce. It happens in atom though.
Input:
.comments {
  .card-block {
    background-color: #f5f5f5;
  }
}

Expected:
.comments {
  .card-block {
    background-color: #f5f5f5;
  }
}

Actual:
.comments {.card-block {
    background-color: #f5f5f5;
  }
}

I tried running this example in prettydiff (which is the default for SCSS) but I could not get it to reproduce. It happens in atom though.

Sounds like maybe the Pretty Diff dependency installed within Atom Beautify may not be updated and Pretty Diff has a bug fix that you do not have.
Try uninstalling and reinstalling Atom Beautify, this will trigger a fresh install of the latest Pretty Diff and hopefully resolve your issue.
If this does not work, then please follow the steps outlined for creating new Issues: https://github.com/Glavin001/atom-beautify/blob/master/CONTRIBUTING.md#new-issues-bugs-questions-etc

Reinstalling did the trick. Should have tried that first!

No problem! Glad it worked :smiley:.


Add the context on Envoy requests to the audit logs

This is not yet fully baked and I am here to get feedback on various choices. The motivation here is to bring a traceability between the Coraza audit logs and the envoy request logs by including the x-request-id header value in the audit logs.
This won't affect any of the existing usage as this inclusion is controlled by the include_request_id_in_audit_logs configuration.
I am looking for feedback over:

A broad need for this traceability vs just my use case (in which case a fork might suffice)
The configuration include_request_id_in_audit_logs vs something broader like include a list of request headers with given labels.
Implementation.

I understand this lacks unit tests and the code could be cleaner but I am waiting for a general agreement over the approach before committing the time.
Thanks all!

@sfc-gh-msathe I really love you brought this up.
We have a couple of issues around this in https://github.com/corazawaf/coraza/issues/711 and https://github.com/corazawaf/coraza-proxy-wasm/issues/166 where I was specifically targeting specifically request ID.
What I think we could do as discussed in https://github.com/corazawaf/coraza/issues/711 we could:

Add the API in coraza (in the experimental) where we define variable keys []string{"REQUEST_HEADERS:X-Request-ID"} which will be used to obtain variables from the transaction that can be displayed in the H part (described as Audit log trailer, which contains additional data).
Update the formatters to output in the audit logs as [var:REQUEST_HEADERS:X-Request-ID=abc123] or "var": {"REQUEST_HEADERS:X-Request-ID": "abc123"} in JSON format.

As per coraza-proxy-wasm we could add the slice include_variables_in_audit_logs: ['REQUEST_HEADERS:X-Request-ID'] to achieve the same.
Thoughts @airween @dune73 @jptosso @anuraaga @M4tteoP


tsserver crashes randomly in VS Code

TypeScript Version:  2.4.1
I don't know exactly what causes tsserver to (seemingly) crash in VS Code, but I opened DevTools while working and waited for everything TS to stop working. This is what was logged:

Please give TS 2.5 a try (VSCode insiders), and let us know if you are still experiencing the issue. if so, please share the tsserver log. you can use Open TSServer log command.

I'm not too keen on installing insider builds, I'll come back to this when 2.5 drops in mainline. Should I close now and reopen later?

up to you, we automatically close stale issues every 2 weeks anyways.

Automatically closing this issue for housekeeping purposes. The issue labels indicate that it is unactionable at the moment or has already been addressed.


Meta Search Doesn't work since 5.1.3

The search function in Meta Data doesn't work anymore since 5.1.3
I insert the objectname, select the DB and mark the types i want zu search.
But wenn I press the search button nothing happens.

Yep. It was broken during search engine refactoring and full-text search improvements. Thanks for report.
As a workaround you could try to use GoTo Object feature (ctrl+shift+d).

Thanks for the fast feedback.
Workaround works perfekt for me.


Curse Voice installing Enchiridion 2 along with Mariculture

Hey,
Not sure if this is an error on your side or if it's related to how Curse Voice handles mod prereqs. When installing Mariculture, it automatically installs the latest version in the Enchiridion 2 marked as release: This causes it to install (at the moment) Enchiridion 2-1.7.10-2.0e.jar, while Mariculture requires Enchiridion 1.
If you want me to report it to someone else, let me know and I will. Figured you should know if you didn't already.

This isn't an issue with me. But an issue with curse not allowing me to set a version for the dependency. I guess my best bet would be to remove it as a dependency on curseforge. So it doesn't try to autodownload it.

I figured. Temporary measure could be to remove it as a dependency and leave a disclaimer saying that it needs manual downloading, until Curseforge allows versions for dependencies. To the suggestion forums I go! Or bugs. Hrm.. Both? Good plan. Thanks for awesome mods!

Mariculture tries to autodownload enchiridion anyways. The autoinstalling on curse, would just mean it installs both versions.

After installing Mariculture on Curse (where it installed Ench2) it caused a crash when trying to launch the game.

should mean* :P

Correction, the crash was unrelated. Installing Mariculture causes it to ask you if you want to download it, as intended. The crash was actually when I tried launching on server, which failed without asking me to download.

Ahh yeah, it's only clientside. I assume server owners would know what they're doing :P.

Big assumption. <3 What are the chances of a serverside automatic download if it isn't present? Would be difficult to have it ask permission, though other things download dependencies if needed (though generally not entire mods, to be fair).

I've sent a feedback post to curseforge about choosing specific versions of projects as dependency. I listed your case as an example of where it would be useful. One could perhaps argue that Enchiridion 1 and 2 should(might) be in seperate projects, which is how their system seems to be designed.
Then again, the ability to choose old version as dependencies wouldn't hurt either way, so a bit of a moot point.

Yeah that thought just occured to me, to split it in to a seperate project. I might do that. But not sure I really want to.


Encryption for stored blobs fails to decrypt

Ok - this is an issue I had with Storage.Net and recently with Fluent.Storage
My use case is that I need to store sensitive files in an encrypted state, even though the blob storage I use will be completely private, just for a 2nd level encryption to satisfy the customers Information Governance.  Anyway not being an encryption guru, it's taken me a bit of time to work out the issue, and it's a long standing one going back to the original implementation.
Since most of the time we will be using Dependency Injection (DI) to instantiate our objects, each time the SymmetricEncryptionSink (or in my case the AesSymmetricEncryptionSink) is created, the IV is set
		public AesSymmetricEncryptionSink(string key) {
			_cryptoAlgorithm = Aes.Create();
			_cryptoAlgorithm.Key = Convert.FromBase64String(key);
			_cryptoAlgorithm.GenerateIV();
		}

This means that if a blob is stored, then it can only be unencrypted using the same instance of the Sink or with an instance of the Sink with the same IV (secret key)
So if you have the case (and this looks to be quite important given that we are pushing to AWS/Azure storage, then if you try and retrieve the blob at another time, you can't read the blob even though the original key might be the same, the secret generated at the time of encryption is no longer the secret that the sink is trying to use the decrypt.
Almost every instance of the use of Storage.Net has got this wrong and has used a pattern like this, which creates a transient (I think) and not a singleton, this one is from Elsa that doesn't use encryption
builder.Services.Configure<BlobStorageWorkflowProviderOptions>(options => options.BlobStorageFactory = () => StorageFactory.Blobs.DirectoryFiles(Path.Combine(builder.Environment.ContentRootPath, "Workflows")));

So there are previous examples see that I found, and in that instances its basically the issue described above.
There are two solutions I think.

Add additional parameter constructors with (key and secret) to the existing encryption sinks (and associated extension methods)
document how to create a singleton with DI that will last for the application lifetime (useful for local caching that can be discarded)
document 1) and show the extended lifetime and how this impacts the generation of the keys

for my use case (which is in fact 2) above
builder.Services.AddSingleton<IBlobStorage>(StorageFactory.Blobs
		.DirectoryFiles(Path.Combine(builder.Environment.ContentRootPath, "Cache"))
		.WithAesSymmetricEncryption(CryptoSeed.GenerateNewKey()));

I'm got a PR ready to address most of these concerns along with unit tests

Awesome!

PR done, there is a fair bit in there
if you think there is any mileage in it, you can mail me at my<EMAIL_ADDRESS>I've got some ideas for a roadmap

I'm not sure what mileage means but appreciate your contributions.


When IOS ends the process, clicking the notification fails to communicate with the flutter

In IOS ,I tried to delay communication, but it didn't work.

Hi @ws4349893
could you please describe the issue in details and
provide your updated  flutter doctor -v
and your flutter run --verbose?
Also, to better address the issue, would be helpful
if you could post a minimal code sample to reproduce the problem
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.


The details of the oeedger8r test cannot be seen.

oeedger8r-cpp/build/test/comprehensive$ ./host/oeedger8r_comprehensive_host enc/oeedger8r_comprehensive_enc.so
Loading virtual enclave enc/oeedger8r_comprehensive_enc.so.so
Segmentation fault (core dumped)

The details can be seen in openenclave repo. https://github.com/openenclave/openenclave
openenclave/build/tests/oeedger8r/host$ ./edl_host ../enc/edl_enc
wchar_t: size in host = 4, size in enclave = 4. Testing of wchar_t is enabled
long: size in host = 8, size in enclave = 8. Testing of long is enabled
unsigned long: size in host = 8, size in enclave = 8. Testing of unsigned long is enabled
long double: size in host = 16, size in enclave = 16. Testing of long double is enabled
=== test_basic_edl_ecalls passed
=== test_basic_edl_ocalls passed
2020-06-09T05:45:29.000000Z [(H)ERROR] tid(0x7f8746795740) | :OE_INVALID_PARAMETER [/home/xy/openenclave/host/calls.c:oe_call_enclave_function_by_table_id:91]
2020-06-09T05:45:29.000000Z [(H)ERROR] tid(0x7f8746795740) | :OE_INVALID_PARAMETER [/home/xy/openenclave/host/calls.c:oe_call_enclave_function_by_table_id:91]
2020-06-09T05:45:29.000000Z [(H)ERROR] tid(0x7f8746795740) | :OE_INVALID_PARAMETER [/home/xy/openenclave/host/calls.c:oe_call_enclave_function_by_table_id:91]
2020-06-09T05:45:29.000000Z [(H)ERROR] tid(0x7f8746795740) | :OE_INVALID_PARAMETER [/home/xy/openenclave/host/calls.c:oe_call_enclave_function_by_table_id:91]
=== expect four OE_INVALID_PARAMETER errors above ====== test_string_edl_ecalls passed
=== test_string_edl_ocalls passed
=== test_string_edl_ecalls passed
=== test_wstring_edl_ocalls passed
=== test_array_edl_ecalls passed
=== test_array_edl_ocalls passed
=== test_pointer_edl_ecalls passed
=== test_pointer_edl_ocalls passed
=== test_struct_edl_ecalls passed
=== test_struct_edl_ocalls passed
=== test_enum_edl_ecalls passed
=== test_enum_edl_ocalls passed
=== test_errno_edl_ocalls passed
=== test_foreign_edl_ecalls passed
=== test_foreign_edl_ecalls passed
=== test_deepcopy_edl_ecalls passed
=== test_switchless_edl_ocalls passed
=== passed all tests (file)

oeedger8r-cpp/build/test/comprehensive$ ./host/oeedger8r_comprehensive_host enc/oeedger8r_comprehensive_enc.so
Loading virtual enclave enc/oeedger8r_comprehensive_enc.so.so
Segmentation fault (core dumped)

This is an oversight on my part. The issue test environment ought to exit gracefully when the enclave binary is not found on the system. The infrastructure adds the appropriate extension (.so and .dll) and in this case since the extension has also been specified on the command line, it ought not be duplicated by the testing infrastructure.


Implement auto-detecting IPv4/IPv6 addresses for DuckDNS

By implementing this on the client side, it allows us to use IPv6 instead of relying on DuckDNS to do the detection for us - which is IPv6 or IPv4 only. This because they're unable to detect both addresses in a single request.
I wasn't unfortunately able to test this on my local HassIO. Is there any documentation available to test this? Because when restarting the container, it is of course restored to the default.

Hi @Wouter0100,
It seems you haven't yet signed a CLA. Please do so here.
Once you do that we will be able to review and accept this pull request.
Thanks!

My (IMO improved) take in #1077

#1077 seems a better and more up-to-date version of this, indeed. I'm not using this anymore and thus closing it. Thanks for the support thus far!


[BUG][v1.3.3-rc2]  the RWX volume becomes faulted after the node reconnects

Describe the bug (🐛 if you encounter this issue)
In node-disconnection , case3 step4~5:
node is disconnected for 100 seconds and then reconnected, the volume becomes faulted after the node reconnects
To Reproduce
Steps to reproduce the behavior:

Launch Longhorn.
Use statefulset launch a pod with the RWX volume and write some data.
kubectl apply -f statefulset.yaml

statefulset.yaml
apiVersion: v1
kind: Service
metadata:
  name: nginx-state-rwx
  labels:
    app: nginx-state-rwx
spec:
  ports:
  - port: 80
    name: web-state-rwx
  selector:
    app: nginx-state-rwx
  type: NodePort
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: web-state-rwx
spec:
  selector:
    matchLabels:
      app: nginx-state-rwx # has to match .spec.template.metadata.labels
  serviceName: "nginx-state-rwx"
  replicas: 1 # by default is 1
  template:
    metadata:
      labels:
        app: nginx-state-rwx # has to match .spec.selector.matchLabels
    spec:
      restartPolicy: Always
      terminationGracePeriodSeconds: 10
      containers:
      - name: nginx-state-rwx
        image: k8s.gcr.io/nginx-slim:0.8
        livenessProbe:
          exec:
            command:
              - ls
              - /usr/share/nginx/html/lost+found
          initialDelaySeconds: 5
          periodSeconds: 5
        ports:
        - containerPort: 80
          name: web-state-rwx
        volumeMounts:
        - name: www
          mountPath: /usr/share/nginx/html
  volumeClaimTemplates:
  - metadata:
      name: www
    spec:
      accessModes: [ "ReadWriteMany" ]
      storageClassName: "longhorn"
      resources:
        requests:
          storage: 0.5Gi

Run command sync in pod, make sure data fulshed.
Disconnect the node to which the shared-manager-pvc is attached for 100 seconds
Wait for the node back and the volume reattachment.
After the volume is reattached, the pod will be automatically deleted and recreate.
Verify the data and the pod still works fine.
Repeat step 2~6 for 3 times.
Create, Attach, and detach other volumes to the recovered node. All volumes should work fine.
Remove Longhorn and repeat step 1~9 for 3 times.

Expected behavior
The volume should be reattached after the node reconnects
Log or Support bundle
longhorn-support-bundle_ec7047cb-8d8a-4455-8c13-3e20680696e4_2023-03-24T08-10-11Z.zip
Environment

Longhorn version: v1.3.3-rc2
Installation method (e.g. Rancher Catalog App/Helm/Kubectl): Rancher
Kubernetes distro (e.g. RKE/K3s/EKS/OpenShift) and version: k3s 1.24.10

Number of management node in the cluster: 1
Number of worker node in the cluster: 3

Node config

OS type and version:
CPU per node: 4
Memory per node: 16
Disk type(e.g. SSD/NVMe): SSD
Network bandwidth between the nodes:

Underlying Infrastructure (e.g. on AWS/GCE, EKS/GKE, VMWare/KVM, Baremetal): AWS
Number of Longhorn volumes in the cluster: 1

Additional context
Add any other context about the problem here.

@roger-ryao
The support bundle doesn't have share manager pod log. Can you update the support bundle?
In addition, can you provide the probability of the issue? Thank you.

@innobead
This is a timing issue.
When transferring a RWX volume from a down node to another node and the volume is attaching, the share manager pod might be created in the down node if the down node is back.
Then, the volume detachment will result in the deletion of replica processes which are for the previous attachment.
The engine process of the volume attachment then marks all replica failed and lead to a faulty volume.
The temporary workaround for the case is enabling salvage.

We should make the consistent lifecycle between share manager pod and volume via PVC instead of hostpath way to access the volume.

Then, the volume detachment will result in the deletion of replica processes which are for the previous attachment.
The engine process of the volume attachment then marks all replica failed and lead to a faulty volume.

@derekbit Can you explain a bit why all replicas had been marked failed? It seems like just normal volume reattachment.

@derekbit Can you explain a bit why all replicas had been marked failed? It seems like just normal volume reattachment.

Correct my finding and please ignore previous steps. I found out the engine process was trapped into an error state at an earlier moment.
This is caused by orphaned engine process.

If the SM volume is scheduled to a node where there is an orphaned process, the downstream replica processes are not accessible. The R/W operations fail and return err I/O error: no backend available.
Then, all replicas are marked as ERR and are set faileAt

@derekbit Can you explain a bit why all replicas had been marked failed? It seems like just normal volume reattachment.

Correct my finding and please ignore previous steps. I found out the engine process was trapped into an error state at an earlier moment.
This is caused by orphaned engine process.

If the SM volume is scheduled to a node where there is an orphaned process, the downstream replica processes are not accessible. The R/W operations fail and return err I/O error: no backend available.

@derekbit did you mean the original volume did not get detached, so kept as an orphan there?

No, the volume is detached and transfers another node, but the original engine process is not deleted because the original is disconnected. If the volume is located on this node again, it will hit the issue.

No, the volume is detached and transfers another node, but the original engine process is not deleted because the original is disconnected. If the volume is located on this node again, it will hit the issue.

I feel this is a day 1 issue?

No, the volume is detached and transfers another node, but the original engine process is not deleted because the original is disconnected. If the volume is located on this node again, it will hit the issue.

I feel this is a day 1 issue?
cc @shuo-wu @PhanLe1010 @c3y1huang

Yeah, I think so.

@roger-ryao Can you try to reproduce the issue in master-head and provide the support bundle as well? Thank you.

Upon further investigation of the ticket, two key concerns have emerged:

Detecting or distinguishing an orphaned engine process
Preventing the share manager pod from blindly mounting a Longhorn volume upon start-up

The fix might need to update the gRPC messages, so it won't be applied to v1.4.x.

This is not a day 1 issue but rather caused after fixing https://github.com/longhorn/longhorn/issues/4789 which has been introduced to 1.4.0/1 and upcoming 1.3.3 already.
After discussing with @derekbit , we decide to fix this in 1.5 instead of the upcoming 1.3.3 or 1.4.2, since users should be able to recover from this known issue via salvaging the volume and auto-salvage by default enabled.
We should exactly fix the root cause caused by the orphaned engine process instead https://github.com/longhorn/longhorn/issues/5658#issuecomment-1489586370.

Hi @innobead @derekbit  :
I was able to reproduce the issue on v1.3.2 and master-head.
132_issue5658_longhorn-support-bundle_a969d7ce-5b54-458d-a6ff-ecca96045595_2023-03-30T03-24-11Z.zip
master-head-issue5658-supportbundle_c92f689c-7db9-4b5f-a219-82d39482967f_2023-03-30T04-59-05Z.zip
I  also wanted to update you on one thing.  When I tried to reproduce this issue 10 times with master-head on rke1, I was unable to observe the issue. However, I was able to easily reproduce this issue on k3s.
master-head-on-rke1-supportbundle_9ba22ba5-77f3-4e9e-96d1-44e4bed09566_2023-03-30T05-08-42Z.zip

Thanks @roger-ryao ! Then it should be a different cause than the PR I mentioned. We need more time on this.

@roger-ryao
Thank you.
What are the k8s versions of rke1 and k3s?

@roger-ryao Thank you. What are the k8s versions of rke1 and k3s?
Hi @derekbit
my k3s is v1.24.10+k3s1 & rke1 is v1.24.10

Upon further investigation of the ticket, two key concerns have emerged:

Detecting or distinguishing an orphaned engine process
Preventing the share manager pod from blindly mounting a Longhorn volume upon start-up

The bug fix includes the two parts

Preventing the share manager pod from blindly mounting a Longhorn volume upon start-up: handled in https://github.com/longhorn/longhorn/issues/5717
Detecting or distinguishing an orphaned engine process: handled after 1. is finished.

The bug fix includes the two parts
Preventing the share manager pod from blindly mounting a Longhorn volume upon start-up: handled in https://github.com/longhorn/longhorn/issues/5717
Detecting or distinguishing an orphaned engine process: handled after 1. is finished.

Since this ticket is dependent on the ticket https://github.com/longhorn/longhorn/issues/5717 and the ticket https://github.com/longhorn/longhorn/issues/5717 is schedule for Longhorn v1.7. Should we also move this one to v1.7? @innobead @derekbit

Since this ticket is dependent on the ticket #5717 and the ticket #5717 is schedule for Longhorn v1.7. Should we also move this one to v1.7? @innobead @derekbit

Agreed. Let's move it to 1.7.0 first.

Looks like there doesn't seem to have orphan engine process as the instance-manager pods was restarted @derekbit

@roger-ryao Could you re-check this issue to see if it's possible to reproduce again? Thanks.

However, it seems problematic that the volume rebuilds the replica on node-1 using other replicas. This seems incorrect as in theory the replica on node-1 should be the one which has the latest data. WDYT @shuo-wu

Since the share manager pod has been restarted, aren't all three replicas also having the latest data? so there should be no rebuild required here?

Reassigned to @james-munson so that he can tackle this together with https://github.com/longhorn/longhorn/issues/5717.

However, it seems problematic that the volume rebuilds the replica on node-1 using other replicas. This seems incorrect as in theory the replica on node-1 should be the one which has the latest data. WDYT @shuo-wu

Since the share manager pod has been restarted, aren't all three replicas also having the latest data? so there should be no rebuild required here?

So when we disconnect the network of the node of the share-manager pod from the cluster. There is a period that the workload pod is still writing to the volume because the volume has the local replica. Then later on, longhorn-manager marked the local replica as error (for some reason I do not investigate closely yet) and rebuild that replica using replicas on other nodes

@roger-ryao Is it still a valid issue?


⚠ Bofrost.at has degraded performance

In 88fbb51, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 2296 ms

Resolved: Bofrost.at performance has improved in db4fc5b after 1 hour, 4 minutes.


Reversing operands forvsubi.

Functionality of almost all cases of current variant of vsubi can be replaced by vaddi with negated imm operand.
More useful case to use vsubi with reversed order of operands:
vsubi vd,imm,vs1

vd[i] = sext(imm) - vs1[i]

Negation operation in base ISA use zero register sub rd, zero, rs2.
To support negation in vector ISA need temporary filled zeros vector register or more than one instruction.
vsubi vd,imm,vs1 form can be more useful, than original form.

@vbx-glemieux
vsub-->vsubi fixed
Thanks!

There is no vsubi in the current proposal. Adding another immediate instruction in the current encoding would eliminate the remaining free encoding space. A unary negation instruction would be more manageable in terms of encoding space but we should verify whether others think it is common enough for inclusion.

@ colinschmidt
You can see vsubi here.
Please update and synchronize.

Added a unary negation operation (vneg) in #42 for the most common use of vsubi.
Closing this based on that PR.
Also reminding everyone that listings.adoc is not updated and does not reflect the current proposal.

Using vneg is a low-performance option for a potentially frequent operation.
We should add a vsubi instruction, albeit slightly different from how originally presented in this thread:
vsubi vd, imm, vs2
vd{i} = sext(imm) - vs2
The original proposal used vs1, which is wired to operand A of the ALU. Switching to vs2 does not require rewiring all of the vector ALUs. It may affect instruction encoding, particularly which bits are used to represent the immediate. For consistency, it is recommended that vaddi use the same encoding:
vaddi vd, imm, vs2
vd{i} = sext(imm) + vs2
The issue now is whether to add a vneg operation, which can be accomplished with vsubi vd, 0, vs2, or to add a vsubi operation. Unfortunately, vneg cannot be used as a direct substitute for vsubi, and instead must use a 2-instruction sequence of vneg followed by vaddi.
In tight inner loops, eliminating the extra vneg instruction has a big performance impact. The negative consequences of using vsubi instead of vneg are much more minor.

I don't object to adding this instruction, but should point out that if
this is in a tight loop, you can register-allocate the immediate and use
vsub, rather than using vneg + vaddi.
On Thu, Nov 1, 2018 at 4:11 PM vbx-glemieux<EMAIL_ADDRESS>wrote:

Using vneg is a low-performance option for a potentially frequent
operation.
We should add a vsubi instruction, albeit slightly different from how
originally presented in this thread:
vsubi vd, imm, vs2
vd{i} = sext(imm) - vs2
The original proposal used vs1, which is wired to operand A of the ALU.
Switching to vs2 does not require rewiring all of the vector ALUs. It may
affect instruction encoding, particularly which bits are used to represent
the immediate. For consistency, it is recommended that vaddi use the same
encoding:
vaddi vd, imm, vs2
vd{i} = sext(imm) + vs2
The issue now is whether to add a vneg operation, which can be
accomplished with vsubi vd, 0, vs2, or to add a vsubi operation.
Unfortunately, vneg cannot be used as a direct substitute for vsubi, and
instead must use a 2-instruction sequence of vneg followed by vaddi.
In tight inner loops, eliminating the extra vneg instruction has a big
performance impact. The negative consequences of using vsubi instead of
vneg are much more minor.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/riscv/riscv-v-spec/issues/26#issuecomment-435217489,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA-7wgqU3fXtssxwEkSS38nFFgyReTzdks5uq3-6gaJpZM4XvY5P
.


make code compile correctly

It currently doesn't compile because of a capitalization issue in the file names

my bad - i noticed that too but git wont let me commit a rename for some reason


Extension titles and icons continually gray out, not available

Issue Type: Bug
Open VSCode and you notice that none of you extensions are available.  The only thing I have found to prop this is not for the faint hearted.  Basically, go into the extensions menu that would otherwise at that moment have icons and titles grayed out, and then I would right click and notice that most of those options are grayed out too so I decided that my only option was to uninstall and reinstall it.  Nice that works! And all yes all my previous settings were preserved.
But then I would open another project.  Nooooooooo. Same. Issue.
I close what I thought I fixed and reopened it.  Yepnope.  Broke.
Please help.  This literally happened while I was sleeping. Just woke up and noticed the theme was gone and that's what got me looking.  I can't be the only one.
VS Code version: Code - Insiders 1.60.0-insider (49af1cbe00271ac2ea36cfc5f7352fe31a7b0094, 2021-08-06T06:42:17.124Z)
OS version: Darwin x64 20.6.0
Restricted Mode: No

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz (8 x 2800)

GPU Status
2d_canvas: enabledgpu_compositing: enabledmetal: disabled_offmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onrasterization: enabledskia_renderer: disabled_off_okvideo_decode: enabledwebgl: enabledwebgl2: enabled

Load (avg)
3, 3, 3

Memory (System)
16.00GB (0.17GB free)

Process Argv
--crash-reporter-id 5259b7f3-ca77-48ca-9664-8a68b39e9d6f

Screen Reader
no

VM
0%

Extensions (53)

Extension
Author (truncated)
Version

Bookmarks
ale
13.1.0

numbered-bookmarks
ale
8.1.0

Handlebars
and
0.4.1

LinkCheckMD
bla
0.3.1

vscode-opennewinstance
chr
0.0.7

vscode-markdownlint
Dav
0.43.2

svg-gallery
dev
2.1.0

vscode-notes
dio
1.1.0

chmod
dle
1.1.1

docs-article-templates
doc
0.2.11

docs-authoring-pack
doc
0.1.13

docs-build
doc
0.3.5

docs-images
doc
0.0.9

docs-linting
doc
0.0.7

docs-markdown
doc
0.2.96

docs-metadata
doc
1.0.7

docs-preview
doc
0.3.57

docs-scaffolding
doc
0.0.9

docs-yaml
doc
0.2.7

githistory
don
0.6.18

xml
Dot
2.5.1

gitlens
eam
11.6.0

restore-editors
eam
0.2.1

cep-debug-runner
hen
1.0.0

applescript
idl
0.21.0

vs-focus
Ivo
0.0.6

Angular2
joh
12.0.0

l13-projects
L13
1.1.0

sftp
lix
1.12.9

vscode-checkpoints
mic
1.3.2

Angular-BeastCode
Mik
10.0.3

dotenv
mik
1.0.1

vscode-less
mrm
0.6.3

vscode-scss
mrm
0.10.0

vscode-docker
ms-
1.15.0

remote-containers
ms-
0.191.0

export-typescript
msc
0.4.1

angular2-inline
nat
0.0.17

vscode-json-editor
nic
0.3.0

vscode-yaml
red
0.22.0

LiveServer
rit
5.6.1

partial-diff
ryu
1.4.3

pin-up
sae
1.4.1

elm
sbr
0.26.0

vscode-autohide
sir
1.0.7

autoimport
ste
1.5.4

code-spell-checker
str
1.10.2

linenote
tkr
1.2.1

lorem-ipsum
Tyr
1.2.0

shell-launcher
Tyr
0.4.1

tab-groups
usa
1.4.8

branch-in-window-title
wis
0.1.2

local-history
xyz
1.8.1

(1 theme extensions excluded)

A/B Experiments
vsliv695:30137379
vsins829:30139715
vsliv368cf:30146710
vsreu685:30147344
python383cf:30185419
pythonvspyt602:30291494
vspor879:30202332
vspor708:30202333
vspor363:30204092
pythonvspyt639:30291487
pythontb:30258533
pythonvspyt551cf:30291413
pythonptprofiler:30281269
vshan820:30294714
pythondataviewer:30285072
pythonvsuse255:30319630
vscod805:30301674
pythonvspyt200:30323110
vsccppwtct:30312693
pythonvssor306:30340298
bridge0708:30335490
pygetstartedt2:30348854
dockerwalkthrucf:30348714
bridge0723cf:30346311

Same issue here @mitchellmorris

Same problem as well, running code-insiders ver:
Version: 1.60.0-insider
Commit: 49af1cbe00271ac2ea36cfc5f7352fe31a7b0094
Date: 2021-08-06T06:38:56.151Z
Electron: 13.1.7
Chrome: 91.0.4472.124
Node.js: 14.16.0
V8: 9.1.269.36-electron.0
OS: Linux x64 5.11.0-25-generic

All of my extensions are disabled, I can get individual ones to temporarily re-enable by uninstalling and then reinstalling them, but once the window is reloaded it all reverts.
Tested by going through and disabling the Trust feature via settings, and opening an explicitly trusted folder, no dice.

Same error here.
VS Code version: Code - Insiders 1.60.0-insider (49af1cbe00271ac2ea36cfc5f7352fe31a7b0094, 2021-08-06T06:41:50.275Z)
OS version: Windows_NT x64 10.0.19042
Restricted Mode: No

System Info

Item
Value

CPUs
AMD Ryzen 5 3600 6-Core Processor               (12 x 3600)

GPU Status
2d_canvas: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onrasterization: enabledskia_renderer: enabled_onvideo_decode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
31.95GB (22.95GB free)

Process Argv
--crash-reporter-id 0af40a44-9856-401d-9a45-35e49b9e2b45

Screen Reader
no

VM
0%

Extensions (15)

Extension
Author (truncated)
Version

better-comments
aar
2.1.0

vscode-django
bat
1.6.0

prettier-vscode
esb
8.1.0

copilot
Git
1.3.2277

dotenv
mik
1.0.1

vscode-docker
ms-
1.15.0

python
ms-
2021.8.1105858891

vscode-pylance
ms-
2021.8.0

jupyter
ms-
2021.8.1195043623

powershell-preview
ms-
2021.8.0

code-spell-checker
str
1.10.2

lua
sum
2.3.4

even-better-toml
tam
0.14.2

errorlens
use
3.4.0

vscodeintellicode
Vis
1.2.14

A/B Experiments
vsliv695:30137379
vsins829:30139715
vsliv368cf:30146710
vsreu685:30147344
python383cf:30185419
pythonvspyt602:30291494
vspor879:30202332
vspor708:30202333
vspor363:30204092
vswsl492cf:30256198
pythonvspyt639:30291487
pythontb:30258533
pythonptprofiler:30281269
vshan820:30294714
pythondataviewer:30285072
pythonvsuse255:30319630
vscod805:30301674
pythonvspyt200:30323110
vsccppwtct:30312693
pythonvssor306:30340298
bridge0708:30335490
pygetstartedt2:30348854
dockerwalkthrucf:30348714

/duplicate of #130219


Fix issue with public schema creation

Fixes #1550

I ended up fixing this in a slightly different way here: https://github.com/kyleconroy/sqlc/pull/2508
Thanks for the initial pull request. Spurred me into finally getting a fix in.


gulp-install doesn't seems to work with deep deps

Hello,
I've just install this lib to be able to install deps programatically, so i've a package.json file that will be used to install my deps, but i have always an error (even if i uninstall then re-install everything) :
[18:00:58] 'cordova:create' errored after 3.4 ms
[18:00:58] Error: Cannot find module './lib/_stream_transform.js'
    at Function.Module._resolveFilename (module.js:336:15)
    at Function.Module._load (module.js:278:25)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (/Users/iJhon/Sites/iland/ecs-portal/node_modules/gulp-cordova-create/node_modules/through2/node_modules/readable-stream/transform.js:1:80)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (/Users/iJhon/Sites/iland/ecs-portal/node_modules/gulp-cordova-create/node_modules/through2/through2.js:1:79)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)

I've taken a look inside the /Users/iJhon/Sites/iland/ecs-portal/node_modules/gulp-cordova-create/node_modules/through2/node_modules/readable-stream/lib and it seems that there is some of the files missing. I've tried with other lib, and again, some files are missing... Most of the times its the deps of the plugin that is missing.
But if i install the gulp-cordova-create lib manually with npm, it works well. Only if i install it with this lib it doesn't install all the files/deep deps (weird...).
Any ideas ?
Thanks.

Ok, i figured out that the issue was caused by my VPN connection. So nothing to do with this lib :-).
Closing the issue.