Error Report - Assertion failure in clock.c

hi i am getting this after a while i execute my program !!!!

I need more context, please.
Do your application starts with?
#include "osmain.h"
osmain(i_create, i_destroy, "", App)

or?
#include "osmain.h"
osmain_sync(.04, i_create, i_destroy, i_update, "", App)

/*
Author josesaleh
MIT License
2022=2023
*/
#include "nappgui.h"
#include "inet.h"
#include "httpreq.h"
#include "json.h"
typedef struct _app_t App;
struct _app_t
{
Window *window;
TextView *text;
Layout *lay;
Label *la;
char_t *str;
bool_t on;
uint32_t i;
Thread *th;
Button *abt;
};
/---------------------------------------------------------------------------/
/*
The function get_ip is responsible for making an HTTP GET request to the api.ipify.org website to retrieve the public IP address of the device. It creates an instance of the Http struct using the http_secure function, passing in the hostname and port as arguments. It then makes an HTTP GET request to the root path ("/") and checks if the request was successful by checking the return value of the http_get function. If successful, it creates a memory stream and reads the response body into it. The function then reads the stream line by line using the stm_lines function, and formats the IP address in a string which is then stored in app->str
*/
static void get_ip(App *app)
{
Http *http = http_secure("api.ipify.org", 443);
Stream *stm = NULL;

if (http_get(http, "/", NULL, 0, NULL) == TRUE)
{
    uint32_t status = http_response_status(http);
    if (status >= 200 && status <= 299)
    {
        stm = stm_memory(4096);
        if (http_response_body(http, stm, NULL) == FALSE)
            stm_close(&stm);
    }
}

http_destroy(&http);
stm_lines(line, stm);
app->str = tc(str_printf("NET IP : %s",line));
stm_next(line, stm);

}
/---------------------------------------------------------------------------/
/*
The function i_on is called repeatedly as long as app->on is TRUE. It prints the current character of app->str at index app->i to the text view using the textview_printf function. If the current index app->i is equal to the length of app->str, it sets app->on to FALSE, app->i to 0, and enables the refresh button using the cell_enabled function.
*/
static void i_on(App *app)
{
if (app->on == TRUE)
{

    textview_printf(app->text,"%c",app->str[app->i++]);
    if(app->i == str_len_c(app->str))
    {
        app->on = FALSE;
        app->i = 0;
        cell_enabled(app->abt, TRUE);

    }
    //i = i+1;
}

}
/*
The function inits is called by the runme function, it clears the text view using the textview_clear function and calls the get_ip function to retrieve the IP address and sets app->on to TRUE.
*/
static void inits(App app)
{
textview_clear(app->text);
get_ip(app);
app->on = TRUE;
}
/
The function runme is called when the "REFRESH IP" button is pressed. It disables the refresh button using the cell_enabled function and creates a new thread that calls the inits function using the bthread_create function.
*/
static void runme(App *app)
{
cell_enabled(app->abt, FALSE);
app->th = bthread_create(inits, app, App);
bthread_close(&app->th);
}
static void i_OnClose(App *app, Event *e)
{
osapp_finish();
unref(app);
unref(e);
}
static Panel *i_panel(App *app)
{
Panel *panel = panel_create();
Layout *layout = layout_create(1, 3);
Button *button = button_push();
Button *Exit_bt = button_push();
TextView *text = textview_create();
app->text = text;
app->lay = layout;
button_text(button, "REFRESH IP");
button_text(Exit_bt, "Exit");
textview_color(app->text, kCOLOR_GREEN);
textview_halign(app->text,ekCENTER);
button_OnClick(button, listener(app,runme, App));
button_OnClick(Exit_bt, listener(app,i_OnClose, App));
layout_button(layout, Exit_bt, 0, 2);
layout_button(layout, button, 0, 1);
layout_textview(layout, text, 0, 0);
layout_hsize(layout, 0, 250);
layout_vsize(layout, 2, 100);
layout_vsize(layout, 0, 20);
layout_margin(layout, 5);
layout_vmargin(layout, 0, 5);
layout_vmargin(layout, 1, 5);
app->abt = layout_cell(layout, 0, 1);
panel_layout(panel, layout);
return panel;

}
/---------------------------------------------------------------------------/
/---------------------------------------------------------------------------/
static App *i_create(void)
{
App *app = heap_new0(App);
Panel *panel = i_panel(app);
app->window = window_create(ekWINDOW_TITLE);
window_panel(app->window, panel);
window_title(app->window, "IP INFO");
window_origin(app->window, v2df(500, 200));
window_OnClose(app->window, listener(app, i_OnClose, App));
window_show(app->window);
app->on = FALSE;
return app;
}
/---------------------------------------------------------------------------/
static void i_destroy(App **app)
{
window_destroy(&(*app)->window);
heap_delete(app, App);
}
/---------------------------------------------------------------------------/
#include "osmain.h"
osmain_sync(0.02,i_create, i_destroy,i_on,NULL, App)

/*
Author josesaleh
MIT License
2022=2023
*/
#include "nappgui.h"
#include "inet.h"
#include "httpreq.h"
#include "json.h"
typedef struct _app_t App;
struct _app_t
{
Window *window;
TextView *text;
Layout *lay;
Label *la;
char_t *str;
bool_t on;
uint32_t i;
Thread *th;
Button *abt;
};
/---------------------------------------------------------------------------/
/*
The function get_ip is responsible for making an HTTP GET request to the api.ipify.org website to retrieve the public IP address of the device. It creates an instance of the Http struct using the http_secure function, passing in the hostname and port as arguments. It then makes an HTTP GET request to the root path ("/") and checks if the request was successful by checking the return value of the http_get function. If successful, it creates a memory stream and reads the response body into it. The function then reads the stream line by line using the stm_lines function, and formats the IP address in a string which is then stored in app->str
*/
static void get_ip(App *app)
{
Http *http = http_secure("api.ipify.org", 443);
Stream *stm = NULL;

if (http_get(http, "/", NULL, 0, NULL) == TRUE)
{
    uint32_t status = http_response_status(http);
    if (status >= 200 && status <= 299)
    {
        stm = stm_memory(4096);
        if (http_response_body(http, stm, NULL) == FALSE)
            stm_close(&stm);
    }
}

http_destroy(&http);
stm_lines(line, stm);
app->str = tc(str_printf("NET IP : %s",line));
stm_next(line, stm);

}
/---------------------------------------------------------------------------/
/*
The function i_on is called repeatedly as long as app->on is TRUE. It prints the current character of app->str at index app->i to the text view using the textview_printf function. If the current index app->i is equal to the length of app->str, it sets app->on to FALSE, app->i to 0, and enables the refresh button using the cell_enabled function.
*/
static void i_on(App *app)
{
if (app->on == TRUE)
{

    textview_printf(app->text,"%c",app->str[app->i++]);
    if(app->i == str_len_c(app->str))
    {
        app->on = FALSE;
        app->i = 0;
        cell_enabled(app->abt, TRUE);

    }
    //i = i+1;
}

}
/*
The function inits is called by the runme function, it clears the text view using the textview_clear function and calls the get_ip function to retrieve the IP address and sets app->on to TRUE.
*/
static void inits(App app)
{
textview_clear(app->text);
get_ip(app);
app->on = TRUE;
}
/
The function runme is called when the "REFRESH IP" button is pressed. It disables the refresh button using the cell_enabled function and creates a new thread that calls the inits function using the bthread_create function.
*/
static void runme(App *app)
{
cell_enabled(app->abt, FALSE);
app->th = bthread_create(inits, app, App);
bthread_close(&app->th);
}
static void i_OnClose(App *app, Event *e)
{
osapp_finish();
unref(app);
unref(e);
}
static Panel *i_panel(App *app)
{
Panel *panel = panel_create();
Layout *layout = layout_create(1, 3);
Button *button = button_push();
Button *Exit_bt = button_push();
TextView *text = textview_create();
app->text = text;
app->lay = layout;
button_text(button, "REFRESH IP");
button_text(Exit_bt, "Exit");
textview_color(app->text, kCOLOR_GREEN);
textview_halign(app->text,ekCENTER);
button_OnClick(button, listener(app,runme, App));
button_OnClick(Exit_bt, listener(app,i_OnClose, App));
layout_button(layout, Exit_bt, 0, 2);
layout_button(layout, button, 0, 1);
layout_textview(layout, text, 0, 0);
layout_hsize(layout, 0, 250);
layout_vsize(layout, 2, 100);
layout_vsize(layout, 0, 20);
layout_margin(layout, 5);
layout_vmargin(layout, 0, 5);
layout_vmargin(layout, 1, 5);
app->abt = layout_cell(layout, 0, 1);
panel_layout(panel, layout);
return panel;

}
/---------------------------------------------------------------------------/
/---------------------------------------------------------------------------/
static App *i_create(void)
{
App *app = heap_new0(App);
Panel *panel = i_panel(app);
app->window = window_create(ekWINDOW_TITLE);
window_panel(app->window, panel);
window_title(app->window, "IP INFO");
window_origin(app->window, v2df(500, 200));
window_OnClose(app->window, listener(app, i_OnClose, App));
window_show(app->window);
app->on = FALSE;
return app;
}
/---------------------------------------------------------------------------/
static void i_destroy(App **app)
{
window_destroy(&(*app)->window);
heap_delete(app, App);
}
/---------------------------------------------------------------------------/
#include "osmain.h"
osmain_sync(0.02,i_create, i_destroy,i_on,NULL, App)

Hi @lbhack
This assertion reveals that something is wrong with the synchronous application. The current timestamp is "after" the previous timestamp. This can happen if the time inside i_on() is greater than the 50 frames/second (0.02) refresh rate. I have not been able to reproduce it. If it continues, try changing 0.02 to 0.04 and test.
On the other hand, the application contains several anomalies that you should correct before continuing:

Numerous warnings.
Memory leaks. str_printf() generates dynamic memory that you must free with str_destroy().
You are calling gui text_view functions from a secondary thread. Please review.
https://nappgui.com/en/osapp/osapp.html#h3
runme() doesn't make any sense. You create a secondary thread only to modify a GUI element (something forbidden) GUI elements are ONLY accessed from the main thread. Secondary threads are for performing NO GUI actions.

hi @frang75 thanks for your answer I fix it all the warnings and remove it the thread .


visit function can block user's action

At first , we could have a look at the implementation of function visit.

def visit(self, url):
        self.connect(url)
        self.ensure_success_response()
        self.driver.get(url)

There are three steps in this function,
first try to connect
second ensure_success_response , this steps is used to check response code.
at last , call selenium api to open url
About checking response code , my opinion is sometimes strict check isn't necessary.
example , use IIS to do authentification , we need open the page to test logon , but splinter check the response code and find it's 401, so raised , it's not a good idea.
it's the code of checking response

if self.code in self.http_errors:
            raise HttpResponseError(self.code, self.reason)

http_errors = (400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
                   412, 413, 414, 415, 416, 417, 500, 501, 502, 503, 504, 505)

So , I think ,we can add an option to choose strict check or simple check .Anyway , visit function can't block user's action,

it's raise output

Traceback (most recent call last):
  File "xxxx.py", line x, in
    browser.visit("http://xxxx/")
  File "build\bdist.win32\egg\splinter\driver\webdriver\__init__.py", line 181, in visit
    self.ensure_success_response()
  File "build\bdist.win32\egg\splinter\request_handler\request_handler.py", line 39, in ensure_success_response
    self.status_code.is_valid_response()
  File "build\bdist.win32\egg\splinter\request_handler\status_code.py", line 53, in is_valid_response
    raise HttpResponseError(self.code, self.reason)
HttpResponseError: 401 - Unauthorized


Master Development Image - Apicast gateway not starting when following the guide

The guide says to run 'make development' and it will create a docker with everything set up. That's not correct however, it lacks the dependencies that you have to install yourself.
Steps To Reproduce

make development
bin/apicast -c aftale-modul/config/aftale-modul.json -b --policy-load-path gateway/src/apicast/policy -v

Current Result
bash-4.2$ bin/apicast -c aftale-modul/config/aftale-modul.json -b --policy-load-path gateway/src/apicast/policy -v
ERROR: /home/centos/gateway/src/apicast/policy_loader.lua:21: module 'resty.env' not found:No LuaRocks module found for resty.env
no field package.preload['resty.env']
no file '/home/centos/gateway/src/resty/env.lua'
no file '/usr/local/openresty/site/lualib/resty/env.ljbc'
no file '/usr/local/openresty/site/lualib/resty/env/init.ljbc'
no file '/usr/local/openresty/lualib/resty/env.ljbc'
no file '/usr/local/openresty/lualib/resty/env/init.ljbc'
no file '/usr/local/openresty/site/lualib/resty/env.lua'
no file '/usr/local/openresty/site/lualib/resty/env/init.lua'
no file '/usr/local/openresty/lualib/resty/env.lua'
no file '/usr/local/openresty/lualib/resty/env/init.lua'
no file './lua_modules/share/lua/5.1/resty/env.lua'
no file './lua_modules/share/lua/5.1/resty/env/init.lua'
no file './resty/env.lua'
no file '/usr/local/openresty/luajit/share/luajit-2.1.0-beta3/resty/env.lua'
no file '/usr/local/share/lua/5.1/resty/env.lua'
no file '/usr/local/share/lua/5.1/resty/env/init.lua'
no file '/usr/local/openresty/luajit/share/lua/5.1/resty/env.lua'
no file '/usr/local/openresty/luajit/share/lua/5.1/resty/env/init.lua'
no file '/home/centos/lua_modules/share/lua/5.1/resty/env.lua'
no file '/home/centos/lua_modules/share/lua/5.1/resty/env/init.lua'
no file '/usr/local/openresty/lualib/resty/env.ljbc'
no file '/usr/local/openresty/lualib/resty/env/init.ljbc'
no file '/usr/local/openresty/lualib/resty/env.lua'
no file '/usr/local/openresty/lualib/resty/env/init.lua'
no file '/home/centos/gateway/src/resty/env.so'
no file '/usr/local/openresty/site/lualib/resty/env.so'
no file '/usr/local/openresty/lualib/resty/env.so'
no file '/home/centos/gateway/lib/resty/env.so'
no file './lua_modules/lib/lua/5.1/resty/env.so'
no file './resty/env.so'
no file '/usr/local/lib/lua/5.1/resty/env.so'
no file '/usr/local/openresty/luajit/lib/lua/5.1/resty/env.so'
no file '/usr/local/lib/lua/5.1/loadall.so'
no file '/home/centos/lua_modules/lib/lua/5.1/resty/env.so'
no file '/home/centos/gateway/src/resty.so'
no file '/usr/local/openresty/site/lualib/resty.so'
no file '/usr/local/openresty/lualib/resty.so'
no file '/home/centos/gateway/lib/resty.so'
no file './lua_modules/lib/lua/5.1/resty.so'
no file './resty.so'
no file '/usr/local/lib/lua/5.1/resty.so'
no file '/usr/local/openresty/luajit/lib/lua/5.1/resty.so'
no file '/usr/local/lib/lua/5.1/loadall.so'
no file '/home/centos/lua_modules/lib/lua/5.1/resty.so'
stack traceback:
/home/centos/gateway/src/apicast/policy_loader.lua:21: in main chunk
[C]: in function 'require'
/home/centos/gateway/src/apicast/loader.lua:14: in main chunk
[C]: in function 'require'
/home/centos/gateway/src/apicast/executor.lua:7: in main chunk
[C]: in function 'require'
/tmp/v1aUWaP8hm:55: in function 'file_gen'
init_worker_by_lua:55: in function <init_worker_by_lua:53>
[C]: in function 'xpcall'
init_worker_by_lua:62: in function <init_worker_by_lua:60>
Expected Result
The api-cast gateway starts up.
Additional Information
If you make sure to run "make dependencies" inside the container, it'll work just fine. The README needs to be updated to indicate this.
Master says to run "make lua_modules" instead of "make dependencies", but if you run the lua_modules target it will just say the lua_modules are up to date even though no luarocks were installed in lua_modules and the directory is completely empty.

Actually I was wrong - make dependencies does indeed install quite a few things, but it's not enough.
rover install --roverfile=gateway/Roverfile
This is what actually installs the luarocks and makes the APICast gateway able to start.

This should be fixed by #1052


Bug: @daily schedule with depends_on_past and non-midnight start date will never run

Probably a rare case, but one I found myself in because I didn't realize that @daily implies midnight, not date time.timedelta(days=1)!
If a @daily DAG has a start_date that isn't midnight, the first DagRun will run at the specified time, but the second run will run at midnight. Then any tasks that depend_on_past will fail since they will look for the prior midnight run, not the actual start_date.
Possible solutions:

if a DAG doesn't start at midnight, transform cron presets to time delta equivalents (this would protect against the general case of not intending midnight runs ever)
have DAG.previous_schedule return max(previous_schedule, self.start_date) (this would protect against just the case I'm describing

@daily, the other @ shortcuts and the cron notation subscribe to the standard of having a clear schedule, and execution_date that line up. I'd rather phase out the support for time interval support than allowing for it on the cron notation side.
The better way to delay tasks is with data dependencies (sensors!) or a TimeDeltaSensor in the absence of it.
Changing the schedule, especially while having depends_on_past=True will lead to all sorts of confusing clogging. The key is to move the start_date to something on your schedule.
An eventual DAG.validate method could check that start_dates fall onto an existing schedule, or something rounded when using timedeltas.


Communication container does not expand to full page

Describe the bug
The UI container for communication does not expand to screen size if more posts should be shown.
It's about the bottom space. The container that contains the discussions does not expand vertically.

To Reproduce

Go to Communication
Create multiple posts that you fill the communication view

Expected behavior
The container should be expanded to the full page
Screenshots
No response
What browsers are you seeing the problem on?
Firefox
Additional context
No response
Relevant log output
No response

I think this happened after virtual scrolling was introduced. And also this depends on screen size as when i zoom out to 80% it looks like the following picture

And when its 100% looks like the following:

@dfuchss Do you think that even if users zoom out it should fill the below space?

I'll have a look at it. (I'll send a full screenshot when I'm at home)

I guess it should expand at any zoom level?

I am not quite sure, i think that if you zoom out it is normal to have the space below.  But maybe someone else could also comment on this.
I tested on different screen sizes (24 inch, 27 inch and 15 inch) and on different browsers (firefox, chrome), if zoom level is 100% there is no space below. And also if someone has a bigger screen could test in 100% zoom level and give a feedback.

Maybe it's about the resolution? I've two monitors (3840x2160 and 2560x1440)
If I'm on the monitor with the smaller resolution, the height is constantly at 769.733px

On my 4K monitor that changes to 769.067px
Maybe it's about the scaling Windows does (e.g., for the 4K monitor it's set to 150% in the windows display settings)


Reminder Time Enum

Automated reminders are sent twice a day, once for EU users and once for US users. An enum should be created to represent US and EU time to replace the bool that currently does this (US = True, EU = False).
https://github.com/chradajan/ClashBot/blob/4ecdb3784f572deb8afa6f97fbe87ba5c73ab70e/db_utils.py#L718-L747

Implemented in fef9500ca37474b5b218179bb3985307468b23f9


Bounding box in training

Awesome repo! thank you for sharing it. I am training this myself but I can't get the bounding box quite right. For the training, did you feed the images into the network using the the bounding box using parse_roi_box_from_landmark in utils/function.py
When i feed through random padding - I can't get a good train!
Thanks again :)
Questions posted to this repository will be closed.

Awesome repo! thank you for sharing it. I am training this myself but I can't get the bounding box quite right. For the training, did you feed the images into the network using the the bounding box using parse_roi_box_from_landmark in utils/function.py
When i feed through random padding - I can't get a good train!
Thanks again :)
Questions posted to this repository will be closed.

Hi, Do you train your model successfully? Can you share it?


[SPARK-11067] Spark SQL thrift server fails to handle decimal value

When executing the following query through beeline connecting to Spark sql thrift server, it errors out for decimal column
Select decimal_column from table
WARN  2015-10-09 15:04:00 org.apache.hive.service.cli.thrift.ThriftCLIService: Error fetching results:
java.lang.ClassCastException: java.math.BigDecimal cannot be cast to org.apache.hadoop.hive.common.type.HiveDecimal
	at org.apache.hive.service.cli.ColumnValue.toTColumnValue(ColumnValue.java:174) ~[hive-service-0.13.1a.jar:0.13.1a]
	at org.apache.hive.service.cli.RowBasedSet.addRow(RowBasedSet.java:60) ~[hive-service-0.13.1a.jar:0.13.1a]
	at org.apache.hive.service.cli.RowBasedSet.addRow(RowBasedSet.java:32) ~[hive-service-0.13.1a.jar:0.13.1a]
	at org.apache.spark.sql.hive.thriftserver.SparkExecuteStatementOperation.getNextRowSet(Shim13.scala:144) ~[spark-hive-thriftserver_2.10-<IP_ADDRESS>.jar:<IP_ADDRESS>]
	at org.apache.hive.service.cli.operation.OperationManager.getOperationNextRowSet(OperationManager.java:192) ~[hive-service-0.13.1a.jar:0.13.1a]
	at org.apache.hive.service.cli.session.HiveSessionImpl.fetchResults(HiveSessionImpl.java:471) ~[hive-service-0.13.1a.jar:0.13.1a]
	at org.apache.hive.service.cli.CLIService.fetchResults(CLIService.java:405) ~[hive-service-0.13.1a.jar:0.13.1a]
	at org.apache.hive.service.cli.thrift.ThriftCLIService.FetchResults(ThriftCLIService.java:530) ~[hive-service-0.13.1a.jar:0.13.1a]
	at org.apache.hive.service.cli.thrift.TCLIService$Processor$FetchResults.getResult(TCLIService.java:1553) [hive-service-0.13.1a.jar:0.13.1a]
	at org.apache.hive.service.cli.thrift.TCLIService$Processor$FetchResults.getResult(TCLIService.java:1538) [hive-service-0.13.1a.jar:0.13.1a]
	at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39) [libthrift-0.9.2.jar:0.9.2]
	at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39) [libthrift-0.9.2.jar:0.9.2]
	at org.apache.hive.service.auth.TSetIpAddressProcessor.process(TSetIpAddressProcessor.java:55) [hive-service-0.13.1a.jar:4.8.1-SNAPSHOT]
	at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:285) [libthrift-0.9.2.jar:0.9.2]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_55]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_55]
	at java.lang.Thread.run(Thread.java:745) [na:1.7.0_55]

Merged build triggered.

Merged build started.

Test build #43696 has started for   PR 9107 at commit 57c1255.

Test build #43696 has finished for   PR 9107 at commit 57c1255.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
    def getPath = path.getOrElse(sys.error("Constructors must start at a class type"))
case class WrapOption(optionType: DataType, child: Expression)
class GenericArrayData(val array: Array[Any]) extends ArrayData
trait QueryExecutionListener
class ExecutionListenerManager extends Logging

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/43696/
Test PASSed.

@navis Thanks for sending out the patch, could you update existing tests to cover this case (or add a new one)?

@davies It'll be reproduced only when using older version of hive jdbc, which does not support columnar wire format (RowBasedSet is older format). Idea?

In my understanding it's not related to columnar format, probably a general problem for all of the Decimal type.Right?
Add the unit test in the https://github.com/apache/spark/blob/master/sql/hive-thriftserver/src/test/scala/org/apache/spark/sql/hive/thriftserver/HiveThriftServer2Suites.scala should be very easy, you can cast any existed data type to decimal type and then get it thru JDBC.

@chenghao-intel It will not happen with columnar format which just calls String.valueOf(field) whatever the field is. But in row-based set which was used older version of hive-jdbc, it casts decimal type to HiveDecimal first which makes exception described.

@navis How about we close this for now? Or, if you'd like to continue the work, can you provide more details the case that triggers the error in the description (I feel we do not understand how this failure will be triggered.)?

It's only happened when using older version of hive jdbc. I'm closing.


Structure of the SOAP message should re-arranged to support multiple claims for a user

Refer to: https://wso2.org/jira/browse/IDENTITY-6744
When adding a user with multiple claim mapping using a SOAP admin service [1] the structure of the SOAP message should be organized as follows to get it a success because we need to both ClaimURI and the value.
     <ser:claims>
        <xsd:claimURI>http://wso2.org/claims/organization</xsd:claimURI>
        <xsd:value>EE</xsd:value>
     </ser:claims>

      <ser:claims>
     <xsd:claimURI>http://wso2.org/claims/emailaddress</xsd:claimURI>
        <xsd:value>testc@gmail.com</xsd:value>
     </ser:claims>

However, the correct arrangement of the SOAP message should be as below because we have defined the tags as "ser:claims"
 <ser:claims>
     <ser:claim>
          <xsd:claimURI>http://wso2.org/claims/organization</xsd:claimURI>
          <xsd:value>EE</xsd:value>
     </ser:claim>
    <ser:claim>
        <xsd:claimURI>http://wso2.org/claims/emailaddress</xsd:claimURI>
        <xsd:value>testc@gmail.com</xsd:value>
     </ser:claim>
 <ser:claims>

[1] https://docs.wso2.com/display/IS530/Configuring+Users

This issue is being closed due to extended inactivity. Please feel free to reopen it if further attention is needed. Thank you for helping us keep the issue list relevant and focused!


Hello world 🖖

@sbidoul Github actions should be triggered in this PR. Could you please see what's happening? Maybe they are disabled in the repo config? :thinking:

They are enabled:

OK, maybe I need to PR from the same repository to be able to develop actions... I'll open another PR from here, at least for this time.

Indeed, ok then I'll close and continue in #2.


Disable config reload and throw a warning on receiving SIGHUP

Closes: #1885
Description

Disables configuration reloading upon receiving a SIGHUP signal and throws a warning notifying the user of this fact and that the feature will be deprecated in the future.
When a SIGHUP signal is sent to Hermes, the logs now look like this
2022-02-18T16:04:12.715032Z  INFO ThreadId(01) Hermes has started
2022-02-18T16:04:24.764642Z  WARN ThreadId(25) configuration reloading via SIGHUP has been disabled and will be deprecated in the future

PR author checklist:

[x] Added changelog entry, using unclog.
[ ] Added tests: integration (for Hermes) or unit/mock tests (for modules).
[x] Linked to GitHub issue.
[x] Updated code comments and documentation (e.g., docs/).

Reviewer checklist:

[ ] Reviewed Files changed in the GitHub PR explorer.
[ ] Manually tested (in case integration/unit/mock tests are absent).

LGTM modulo a nitpick. I'll take care of removing the config reload code in a follow-up PR.


feat(java): :sparkles: added element list and dom property support

Closes: #939
Type of changes?

[ ] Bug fixes: Non-breaking change which fixes an issue
[x] New feature: Non-breaking change which adds a new feature
[ ] Performance improvement: Non-breaking change which improves performance
[ ] Documentation: Non-breaking change which improves documentation
[ ] Other: Non-breaking change which does not fit into the above categories
[ ] Breaking change: A breaking change which requires a new version of the library

Checklist for Java project

[ ] Change not related to Java project

Following checklists are optional if above checkbox is selected:

[x] Copyright banner comment added to newly added files, except *.md, *.yml, *.json?
[x] Proper JavaDoc updated in main and test classes for all public classes and methods?
[x] Tests added for changes?
[x] Tests are passing locally?
[x] Check style checks are passing locally?
[x] Test coverage is at least 80% for newly added changes?
[x] There are no SonarCloud issues?
[x] README updated? (if applicable)
[x] Documentation website updated for the PR raised?

Checklist for Website

[x] Change not related to Website project

Following is optional if above checkbox is selected:

[ ] Lint check passes locally?
[ ] Prettier check passes locally?
[ ] Build command working fine locally?

Reviewers
@BoykaFramework/boyka-core

[!IMPORTANT]
Make sure to check the Allow edits from maintainers box below this window

:rocket: This pull request is included in v2.4.0. See Release 2.4.0 for release notes.


Document that disable comments can include a descriptive comment

Updates the documentation to reflect that disabling comments can include descriptive text after the cop name. This feature was introduced in #3191 and as far as I can tell is still supported.
This is only a documentation update, I'll do my best to pick the relevant tasks below 🙇🏻

Before submitting the PR make sure the following are checked:

[x] The PR relates to only one subject with a clear title and description in grammatically correct, complete sentences.
[x] Wrote good commit messages.
[ ] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[ ] Added tests.
[ ] Ran bundle exec rake default. It executes all tests and runs RuboCop on its own code.
[ ] Added an entry (file) to the changelog folder named {change_type}_{change_description}.md if the new code introduces user-observable changes. See changelog entry format for details.

@bbatsov I did some more digging into the git history and learned that the documentation I'm updating is actually much more recent than expected. It was introduced in 2020: https://github.com/rubocop/rubocop/pull/7995, whereas the behavior to allow the descriptive text was introduced in 2016.
Am I being accurate that disabling comments are intended to accept an additional "reason/comment"?

Yeah, it seems that actually that's not really supported. My bad. I keep forgetting how certain features work. @koic can add more on the topic I guess.

https://github.com/rubocop/rubocop/issues/7993 was misdetecting comments as cop name, https://github.com/rubocop/rubocop/pull/7995 fixes that.
Perhaps I wanted to be told about not recommending any description other than cop name. So, it can be written free text comment on the same line, but it is not recommended. It's probably better to write it on a separate line.

@koic Agreed.

So, it can be written free text comment on the same line, but it is not recommended. It's probably better to write it on a separate line.

That sounds like it is a supported feature, but not recommended (very Rubocop-y 😄 ). I can try to capture that in the documentation.
Is the reason purely that it's prone-to-breakage?
I think the trailing reason comment is very useful to have on the same-line (it's visually closest to the code being commented; it could be removed via Lint/UnneededDisable; it could be parsed/reported). So I like it as a feature, but I also trust you all if you don't think it's possible to support it.
I see two options and I'd like your advice:

Capture in the documentation that it is a feature, but it's not recommended because it's easy to mess up the parsing. I can also add some tests and attempt to make it less breakable and better define what is acceptable syntax.
Close this PR because ultimately it's not a supported feature.

Thanks for chatting through this with me!

Is the reason purely that it's prone-to-breakage?

For me the main problem is that this makes sense only for a single cop/department being listed on the line, but what happens if you have several? And obviously it's easier to parse the directive contents if you know there's no free-form text somewhere in there.
I do get your point, however, and I wonder what's the best approach in general. Normally I put some explanatory comments before directives and that seems fine to me overall.


Add EKHookMemoryRaw, fix compilation with Xcode 15.3

This adds the EKHookMemoryRaw function pointer that jailbreaks are able to set to intercept memory hooks. I have also rewritten the old implementation in C (as it was just Swift code calling C functions anyways) and added some improvements to it, such as checking if remapping is even neccessary to write to it.
In the future it would make sense to centralize this API further to also cover any writes of to-be-made-executable data (right now there are some places in ellekit that allocate memory, write to it and then set it as executable), which would also allow a jailbreak to handle something like page signing, but for now this API is enough for Dopamine to intercept all hooks of DSC pages to fix spinlock panics.
Additionally, this also fixes compilation on Xcode 15.3 which was broken due to Apple adding XPC headers to the iOS sdk, because I sure as hell didn't want to install an older Xcode just to compile ellekit :P.

Nice job :)


Develop GUI

Description
As discussed within Bellingcat's recent tool survey many researchers don't use tools that require downloading from Github and installing software. Therefore it would be useful to develop a no-code interface to the tool that can be easily hosted somewhere. Streamlit seems to be the best option so far for developing a basic GUI quickly.

On further investigation Voila seems to be a more appealing option than Streamlit as Streamlit doesn't appear to support ipywidgets natively. For mapping, Streamlit natively support pydeck (instead of ipyleaflet) which lacks some of the mapping features required for this use-case (clustering markers, antpaths etc.)

Implemented basic GUI using voila. Link in README. md


Implement Get Member by ID API

Implement the Get Member by ID API as defined in the https://github.com/chinthakarukshan/lbms/issues/6 specification

Development completed.


examples/pipe: Enhance test by different r/w thread priority

Summary
By arranging and combining the priorities of read and write threads to cover more usage scenarios.
Impact
pipe example
Testing
QEMU

[Experimental Bot, please feedback here]
No, the provided PR information does not meet the NuttX requirements.
Missing Information:

Summary:

Lacks a clear explanation of the change's necessity (fix, update, feature).
Missing details about the specific functional code being modified.
No description of how the change works.
No related issue references.

Impact:

All impact sections are incomplete and lack specific details. For instance, does the change introduce a new feature? How does it affect users, builds, hardware, etc.?

Testing:

Insufficient information about the testing environment (OS, compiler versions, specific boards/configs).
No concrete testing logs provided (before and after the change).

To meet the NuttX PR requirements, you need to provide comprehensive details in each section. For example:

Summary: "This PR enhances the pipe functionality by prioritizing read and write threads to improve performance in scenarios with concurrent access.  The pipe_read() and pipe_write() functions are modified to ... [explain how]. This addresses Issue # [link to issue]."
Impact: "This change improves the efficiency of pipe operations, potentially benefiting users with applications that heavily rely on pipes. No breaking changes are introduced. Documentation for pipe usage will be updated to reflect the new behavior."
Testing: "Tested on Ubuntu 20.04 with GCC 9.4, targeting the QEMU ARM simulator with the sim:nsh configuration.

Before: [Logs showing previous behavior]
After:  [Logs demonstrating improved performance/correctness]"

Provide specific and detailed information to ensure your PR is clear, well-documented, and meets the NuttX project standards.

let's ignore macOS ci temp break.


Compacted message serialization and deserialization

For compaction, we want to store the the message ID, metadata and payload for each retained message.
The payload is currently stored along with the metadata inside a ledger entry. The message ID is generated from the ledger id and entry id.
We want the compacted messages to have the same ID as before they were compacted. This means we need to also store the message ID in the ledger entry.
We need serialization and deserialization methods for this (see Commands.java)

done


Assignment 1 , module not found

when I run the A1 file my pycharm says module sklearn is not found . I have installed the package . so what would be the bets way to resolve this

Have you tried using a terminal to run it?
src> python A1.py

so after installing scikit-learn multiple times i was able to run the code . still i was getting a error , i was not able to load the data source . so i downloaded Iris_train and Iris_test seperately and loaded them manually and was able to get the output.

Hi Professor,
My name is Dave Putz. I am no longer in this class, so please kindly remove me from email comms.
Thanks!

@djpnce you can unwatch this repo. These emails are pushed by GitHub.


[dev.fuzz] cmd/go: simple off-by-one example takes longer than expected to complete

What version of Go are you using (go version)?
$ gotip version
go version devel go1.17-542e8c74e7 Fri Jun 4 15:59:32 2021 +0000 linux/amd64

What did you do?
I ported a simple example I've used to test go-fuzz in the past:
// +build gofuzz

package fuzz

func Example(data []byte) bool {
	if len(data) == 9 {
		if data[0] == 'G' && data[1] == 'O' && data[2] == 'P' && data[3] == 'H' && data[4] == 'E' && data[5] == 'R' && data[6] == 'S' && data[7] == '!' && data[8] == '!' && data[9] == '!' {
			return true
		}
	}
	return false
}

func Fuzz(data []byte) int {
	Example(data)
	return 0
}

⬇
// +build gofuzzbeta

package fuzz

import (
	"testing"
)

// Example is a common fuzzing example that demonstrates an off-by-one/out-of-bounds
// error which causes the program to crash.
//
// Instead of checking that len(data) == 9 the correct code should be len(data) == 10.
func Example(data []byte) bool {
	if len(data) == 9 {
		if data[0] == 'G' && data[1] == 'O' && data[2] == 'P' && data[3] == 'H' && data[4] == 'E' && data[5] == 'R' && data[6] == 'S' && data[7] == '!' && data[8] == '!' && data[9] == '!' {
			return true
		}
	}
	return false
}

func FuzzOffByOne(f *testing.F) {
	f.Fuzz(func(t *testing.T, input []byte) {
		Example(input)
	})
}

$ gotip test -fuzz=FuzzOffByOne

What did you expect to see?
I've run the example several times before, and would generally expect a fuzzer to find a crash fairly fast, even without a corpus -- somewhere between a few seconds to a few minutes.
Using the same CPU and RAM configuration as the native fuzzer test, I was able to find it within seconds using go-fuzz:

What did you see instead?
With the new native fuzzer, it took ~24 hours to find a crash using 2GB of RAM and 1 CPU (from an n1-standard-2 instance):

CC @katiehockman

CC @golang/fuzzing

This is an interesting comparison since the target expects a very specific input size. It seems plausible that go-fuzz is much more conservative about increasing the size of inputs during mutation (perhaps in relation to the initial size of the input), so when starting from an empty input you're more likely to hit an input which is 9 bytes long, whereas our mutators don't really take this into account, making it much more of a lottery.

I have a similar example here: https://github.com/stevenjohnstone/go-beta-fuzzer-vs-libfuzzer/blob/main/fuzz.go. In this case, the number of bytes a mutator needs to "guess" is fewer so it completes in a reasonable time.
In that repo, I build a libfuzzer harness equivalent to a native fuzzer. Both use the "libfuzzer" build for instrumentation (inline 8-bit counters and cmp tracing hooks) so they have the same feedback (modulo some noise from supporting code) for executions of the function under test. I disable the cmp tracing functionality during libfuzzer runs to make sure I'm comparing apples with apples.
Initial experiments seem to indicate that libfuzzer is able to find a crasher about 100x faster than the native fuzzer for my very artificial example. I don't think this can be used as judgement on effectiveness without a lot of careful thought but I think it's interesting that we have an alternative implementation available for comparisons.

Coming back to look at this again, the example case is a great example of something fuzzers are generally not great at without additional instrumentation strategies. In order to hit the out-of-bounds access, the fuzzer first has to generate a very particular string (GOPHERS!!). Without comparison instrumentation, or more advanced REDQUEEN-esque input-to-state comparison mapping, using just coverage instrumentation is going to take a while to hit the failing condition via brute force mutations.
I think we should probably just close this, in favor of #46507 which details more advanced strategies the fuzzer could incorporate in the future.

@rolandshoemaker I don't think this needs any instrumentation of comparisons to work. If I build the example as
package fuzz

func FuzzLibFuzzer(data []byte) int {
	if len(data) == 9 {
		if data[0] == 'G' && data[1] == 'O' && data[2] == 'P' && data[3] == 'H' && data[4] == 'E' && data[5] == 'R' && data[6] == 'S' && data[7] == '!' && data[8] == '!' && data[9] == '!' {
			panic("found")
		}
	}
	return 0
}

and compile it for use with libfuzzer (with https://github.com/stevenjohnstone/go114-fuzz-build and gotip as the go compiler to make the comparison fair), then the fuzzer finds the crasher in a few seconds even with comparison tracing disabled:
$ ./fuzz.libfuzzer -use_cmp=0
INFO: Running with entropic power schedule (0xFF, 100).
INFO: Seed:<PHONE_NUMBER>
INFO: 71 Extra Counters
INFO: -max_len is not provided; libFuzzer will not generate inputs larger than 4096 bytes
INFO: A corpus is not provided, starting from an empty corpus
#2	INITED ft: 3 corp: 1/1b exec/s: 0 rss: 27Mb
#817	NEW    ft: 5 corp: 2/10b lim: 11 exec/s: 0 rss: 27Mb L: 9/9 MS: 5 ChangeByte-ChangeBit-InsertRepeatedBytes-CrossOver-CrossOver-
#158588	NEW    ft: 6 corp: 3/19b lim: 1570 exec/s: 158588 rss: 27Mb L: 9/9 MS: 1 InsertRepeatedBytes-
#165640	NEW    ft: 7 corp: 4/28b lim: 1640 exec/s: 165640 rss: 27Mb L: 9/9 MS: 2 ChangeBit-ChangeBit-
#262144	pulse  ft: 7 corp: 4/28b lim: 2600 exec/s: 131072 rss: 27Mb
#272207	NEW    ft: 8 corp: 5/37b lim: 2699 exec/s: 136103 rss: 27Mb L: 9/9 MS: 2 ChangeBit-ChangeByte-
#331563	NEW    ft: 9 corp: 6/46b lim: 3282 exec/s: 165781 rss: 27Mb L: 9/9 MS: 1 ChangeBinInt-
#371205	NEW    ft: 10 corp: 7/55b lim: 3667 exec/s: 123735 rss: 27Mb L: 9/9 MS: 2 ChangeBinInt-ChangeBinInt-
#524288	pulse  ft: 10 corp: 7/55b lim: 4096 exec/s: 131072 rss: 27Mb
#564466	NEW    ft: 11 corp: 8/64b lim: 4096 exec/s: 141116 rss: 27Mb L: 9/9 MS: 1 ChangeByte-
#1048576	pulse  ft: 11 corp: 8/64b lim: 4096 exec/s: 131072 rss: 27Mb
#1346633	NEW    ft: 12 corp: 9/73b lim: 4096 exec/s: 122421 rss: 27Mb L: 9/9 MS: 2 ChangeBit-ChangeBit-
#1420584	NEW    ft: 13 corp: 10/82b lim: 4096 exec/s: 129144 rss: 27Mb L: 9/9 MS: 1 CrossOver-
panic: runtime error: index out of range [9] with length 9

goroutine 17 [running, locked to thread]:
github.com/stevenjohnstone/fuzz.FuzzLibFuzzer(...)
	github.com/stevenjohnstone/fuzz/fuzz.go:5
main.LLVMFuzzerTestOneInput(0x2ebba40, 0x9)
	./main.3023831966.go:21 +0x29f
==108767== ERROR: libFuzzer: deadly signal
==108767==WARNING: invalid path to external symbolizer!
==108767==WARNING: Failed to use and restart external symbolizer!
    #0 0x4b0694  (/home/stevie/47090/fuzz.libfuzzer+0x4b0694)
    #1 0x459a28  (/home/stevie/47090/fuzz.libfuzzer+0x459a28)
    #2 0x43da63  (/home/stevie/47090/fuzz.libfuzzer+0x43da63)
    #3 0x7ff093d5651f  (/lib/x86_64-linux-gnu/libc.so.6+0x4651f)
    #4 0x504080  (/home/stevie/47090/fuzz.libfuzzer+0x504080)

NOTE: libFuzzer has rudimentary signal handlers.
      Combine libFuzzer with AddressSanitizer or similar for better crash reports.
SUMMARY: libFuzzer: deadly signal
MS: 1 CopyPart-; base unit: 66afe1da9d562cf1c22adbde30a1f2415bb2e01f
0x47,0x4f,0x50,0x48,0x45,0x52,0x53,0x21,0x21,
GOPHERS!!
artifact_prefix='./'; Test unit written to ./crash-af006d47aa10b88943df8c1cf8545aec346e9c09
Base64: R09QSEVSUyEh

I think you hit the nail on the head in https://github.com/golang/go/issues/47090#issuecomment-877318507: the fuzzer tries really long inputs. When I instrument with bpftrace and run the golang native fuzzer for 30 seconds, I see
@len:
[0]                   52 |                                                    |
[1]                 1989 |                                                    |
[2, 4)              1650 |                                                    |
[4, 8)              5891 |                                                    |
[8, 16)            18321 |@                                                   |
[16, 32)           31080 |@@                                                  |
[32, 64)           58341 |@@@@                                                |
[64, 128)         107252 |@@@@@@@                                             |
[128, 256)        187963 |@@@@@@@@@@@@@                                       |
[256, 512)        284687 |@@@@@@@@@@@@@@@@@@@@                                |
[512, 1K)         438991 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@                      |
[1K, 2K)          617222 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@         |
[2K, 4K)          738464 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@|
[4K, 8K)          695546 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    |
[8K, 16K)         216449 |@@@@@@@@@@@@@@@                                     |
[16K, 32K)         17991 |@                                                   |

Oh hm, now looking at the mutation code for the ~third time, I'm seeing some somewhat unexpected behavior. With a handful of architectural tweaks I can mostly match libFuzzer performance on this particular target.
I need to stare at this a little bit longer to figure out the correct solution.


Update lectures/05-concurrency/lecture.slide

simplify sum expression
use defer instead of unlock at the function end

https://p.go.manytask.org/05-concurrency/lecture.slide#30


Why should install x64 dlls in system32 and x32 dlls in syswow64?

In README, installation instructions says:
WINEPREFIX=/path/to/wineprefix
cp x64/*.dll $WINEPREFIX/drive_c/windows/system32
cp x32/*.dll $WINEPREFIX/drive_c/windows/syswow64
winecfg

Why should i install x64 DLLs in System32 instead of Syswow64?
And, why should i install x32 DLLs in Syswow64 instead of System32?

Because on a 64 bit windows install and o 64 bit wine prefixes, system32 contains 64 bit dlls and syswow64 contains 32 bit dll. Syswow64 stands for 'system windows on windows 64'.

As mbriar said that is just a quirk of how Windows does things.
https://www.ibm.com/support/pages/why-do-64-bit-dlls-go-system32-and-32-bit-dlls-syswow64-64-bit-windows

Thank you!


Should inline parameters be removed?

They are a source of headache in loading and schema interpretation due to the recursion. They can also make models difficult to read. The new schema has already required them to be named (a change from v1.x).
I wonder if we should just remove them entirely?
The case of a constant parameter has been superseded by the separate constant metric variant (i.e. not a parameter). Therefore constants would still be allowed inline. Trivial control curves (e.g. licence target) might be one area where they are used, but if it is a common pattern we should just create a node type to do that for the user.
Unless there are strong objections this is leaning to a "yes" at the moment.

My vote is "yes". I've tended to avoid inline parameters as much as possible in recent years due to them making models less readable

I tend to use inline parameters most of the time. If they are only applied to one component (for example a node), I can immediately see how the component is setup without scrolling to another part of the JSON file. I however understand that it would make things much easier to get rid of them.
I don't really have a definitive opinion on this 😄

How about some design where we remove inline parameters, but provide a local space for parameters to be defined in a node. I.e. a "parameters" list on each node, that when added to the model are owned/parented by that node. This would allow local parameters to be defined on the node, but without the complexity of supporting the recursion.

Here's an example with two nodes referring to local parameters of the same name.
[
  {
    "meta": {
      "name": "supply1"
    },
    "type": "Input",
    "max_flow": {
      "type": "LocalParameter",
      "name": "max_flow"
    },
    "parameters": [
      {
        "meta": {
          "name": "max_flow"
        },
        "type": "Constant",
        "value": 10.0
      }
    ]
  },
  {
    "meta": {
      "name": "supply2"
    },
    "type": "Input",
    "max_flow": {
      "type": "LocalParameter",
      "name": "max_flow"
    },
    "parameters": [
      {
        "meta": {
          "name": "max_flow"
        },
        "type": "Constant",
        "value": 12.0
      }
    ]
  }
]

Completed in #280 and #298.


I does what I likes and I likes what I does

What is the purpose of your pull request?

[ ] Bug fix
[ ] Improvement
[x] New extractor
[ ] New feature

Description of your pull request and other information
A Spotify extractor

What is this???


Regenerating UTXO set from the Ledger is incredibly slow

While testing loading 1007 blocks in https://github.com/bpfkorea/agora/pull/845, I've found another issue why timeouts happen. Regenerating the UTXO set when it's empty is very very slow:
(Tid(1048f8200)): [1590551415] 2020-05-27 03:50:15,590 Info [agora.node.Ledger] - Tid(1048f8200) Loading UTXO set at<PHONE_NUMBER> at block height 0
(Tid(1048f8200)): [1590551434] 2020-05-27 03:50:34,797 Info [agora.node.Ledger] - Tid(1048f8200) Loading UTXO set at<PHONE_NUMBER> at block height 1007

It takes 19 seconds to load UTXOs for 1007 blocks.

This is on Travis. It seems the Github machines are a bit faster for whatever reason.

(Tid(7f9368b94380)): [1590551021] 2020-05-27 03:43:41,347 Info [agora.node.Ledger] - Tid(7f9368b94380) Loading UTXO set at<PHONE_NUMBER>
(Tid(7f9368b94380)): [1590551023] 2020-05-27 03:43:43,273 Info [agora.node.Ledger] - Tid(7f9368b94380) Loading UTXO set at<PHONE_NUMBER> at block height 1007

Github CI loads it in 2 seconds. wtf.


Feature: Updated index page.

Updated the homepage to include a link for the LTB and PHP LDAP Admin services.

Hi, Nick. I have been tested new adop-nginx tag ("latest").
Everything works fine.

Great, thanks - I've created the 0.2.0 release that covers this PR, #10, and #12 .


Implement codegen option for generic constraint evaluation format

The output of this codegen option should be a JSON file with the following structure:
{
    num_polys: integer,
    num_variables: integer,
    constants: [array of field elements in the Goldilocks field],
    expressions: [array of expression nodes],
    outputs: [array of node references],
}

In the above, node reference has the following structure:
{
  type: "POL | POL_NEXT | VAR | CONST | REF",
  index: integer,
}

Where:

POL refers to the value in the column at the specified index in the current row.
POL_NEXT refers to the value in the column at the specified index in the next row.
VAR refers to a public input or a random value at the specified index.
CONST refers to a constant at the specified index.
REF refers to a previously defined expression at the specified index.

An expression has the following structure:
{
  op: "ADD | SUB | MUL",
  lhs: node_reference,
  rhs: node_reference,
}

Where ADD, SUB, and MUL are the corresponding operations in the Goldilocks base field.
Code generation
To generate the code in the above format, we would need to do the following:

Merge main and auxiliary trace columns together into a single list of columns. For example, if we have 5 main trace columns and 2 aux trace columns, we should end up with with a list of either 9 or 11 columns, depending on the extension degree specified (i.e., 9 columns for quadratic extension and 11 columns for cubic extension). This also means that field extension degree should be an input parameter for this codegen option.
Flatten public inputs into a single array of values and merge it with random values array. This array will represent the variables array for the expressions.
Reduce all operations to the 3 supported operations in the base field. This also means that all operations over the extension field must be transformed into equivalent operations in the base field.

In addition to the above, we also need to add constraint merging logic to the constraint evaluation description. There should be only 3 entry points in the outputs section:

One entry point to compute merged boundary constraints against the first step.
One entry point to compute merged boundary constraints against the last step.
One entry point to compute merged transition constraints.

The logic for merging transition constraints is described here and the logic for computing and merging boundary constraints is described here.
A few other things to consider:

How to represent periodic columns? I am not yet sure if we can use constants or variables to represent them. We might have to introduce a new type of column in the top level.
We might need to include a column which represents successive powers of the generator (i.e., $\omega^0, \omega^1, ..., \omega^{n-1}$). This might be implicit though.
For merging columns, we will need to assume that extra randomness is provided by the verifier. These random values would be included in the variables section. We also may need to add degree adjust factors to the variables array as well.

Implementation approach
It would probably make senes to split implementation of this into several steps. The first step should probably not involve constraint merging and should have one output for each boundary and transition constraint. Only after this is working, we should implement constraint merging.

Should be just REF. Updated!

Although, I wonder if just EXP (or EXPR) is better than REF. All of these are references (whether we are referencing a constant or a variable or a polynomial) - so, it might make sense to change REF to EXPR to make it clear that this is an expression reference.

I prefer EXPR over EXP if we're making the change, since EXP looks like exponent instead of expression, but I think I probably prefer REF (although it's a very mild preference).


Do not remove logs after kubernetes deployment fail (and no retry).

Fixes issue "there is no way to investigate what was a problem with kubernetes if any error causes to erase output from all other kuberenetes compontens"
Summary of changes:

drop EraseOutput from kubernetes launcher after error condition of all components
just one try to preparing kubernetes cluster to isolate debug logs of single kubernetes deployment try

Testing done:

yes - logs weren't removed after port conflict and inability to start kube-proxy

run integration tests

run integration tests


Constraining crop box to within original image

From what I can understand none of the options allow you to constrain the crop box to be within the original image. In my particular case I actually only want to constrain the bottom 3 sides and allow the top side to go higher than the image but this is a slightly more niche use case. I expected there to be an option to totally constrain the crop box within the image though. To not allow the crop box to be larger than the image and to not allow any transparent areas around the image.
Would there be much interest if I were to make a pull request to support this?

I think setting the option viewMode to 1 already does this, although if you expose the image rotation controls the constraint no longer applies.

I believe this item can be closed. Just verified that @islemaster is correct in viewMode=1 creating this behavior.

Yes that behaviour is correct. Although in my use case rotation controls are exposed and so there is still an issue.
There should be the ability to use viewMode=1 with rotation.


Bypassing the whole WAF with uri fragment # character

Describe the bug
Uri Fragment # character allows bypassing the whole ModSecurity WAF.
To Reproduce
Deploy an OpenResty with ModSecurity and the CRS.
Install OWASP JuiceShop and use OpenResty as a reverse proxy. (I deployed mine at the location /juiceshop/)
Try the simple XSS  attack in the search field of the webapp.
The attack won't be blocked, but if you remove the # introduced by JuiceShop, the WAF will block it.
By simply removing the # character in http://localhost/juiceshop#/search?q=<iframe src%3D"javascript:alert(`xss`)"> which becomes http://localhost/juiceshop/search?q=<iframe src%3D"javascript:alert(`xss`)">, the WAF works as intended and blocks the attack.
It can be reproduced easily, without running JuiceShop or the CRS, but the use of JuiceShop was to prove that the attack is still running.
Simply deploy ModSecurity on OpenResty with a rule that blocks the word "test" in ARGS (SecRule ARGS "@contains test" "id:1,phase:1,t:none,t:lowercase,deny").
Process the request: localhost/?a=test, it will be blocked
Process localhost#/?a=test, it will pass.
Expected behavior
The # character shouldn't have any incidence on the request processing behavior.
Server (please complete the following information):
•	Ubuntu 20.04
•	OpenResty <IP_ADDRESS>
•	ModSecurity v3/master
•	ModSecurity-Nginx master (commit b55a5778c)
•	JuiceShop OWASP 11.1.1 (https://github.com/bkimminich/juice-shop)
Rule Set (please complete the following information):
•	ModSecurity CRS 3.2.0

`Describe the bug
Uri Fragment # character allows bypassing the whole ModSecurity WAF.
To Reproduce
Deploy an OpenResty with ModSecurity and the CRS.
Install OWASP JuiceShop and use OpenResty as a reverse proxy. (I deployed mine at the location /juiceshop/)
Try the simple XSS  attack in the search field of the webapp.
The attack won't be blocked, but if you remove the # introduced by JuiceShop, the WAF will block it.
By simply removing the # character in http://localhost/juiceshop#/search?q=<iframe src%3D"javascript:alert(`xss`)"> which becomes http://localhost/juiceshop/search?q=<iframe src%3D"javascript:alert(`xss`)">, the WAF works as intended and blocks the attack.
It can be reproduced easily, without running JuiceShop or the CRS, but the use of JuiceShop was to prove that the attack is still running.
Simply deploy ModSecurity on OpenResty with a rule that blocks the word "test" in ARGS (SecRule ARGS "@contains test" "id:1,phase:1,t:none,t:lowercase,deny").
Process the request: localhost/?a=test, it will be blocked
Process localhost#/?a=test, it will pass.
Expected behavior
The # character shouldn't have any incidence on the request processing behavior.
Server (please complete the following information):
•	Ubuntu 20.04
•	OpenResty <IP_ADDRESS>
•	ModSecurity v3/master
•	ModSecurity-Nginx master (commit b55a5778c)
•	JuiceShop OWASP 11.1.1 (https://github.com/bkimminich/juice-shop)
Rule Set (please complete the following information):
•	ModSecurity CRS 3.2.0
Felipe “Zimmerle” Costa
Security Researcher, Lead Developer ModSecurity.
Trustwave | SMART SECURITY ON DEMAND
www.trustwave.com
`

The investigation in this case concluded that it was not as it at first seemed.
The provided example was a DOM Based XSS.  The XSS payload was not sent to the server (and of course not received back in a response), so there was nothing to detect.
In other words, using the uri fragment character does not result in any known bypass.
Separately, just a quick reminder that for security issues (including ModSecurity bypasses) that may be discovered or suspected, it is generally safer to not post them initially to github where they might be of immediate value to malicious actors.  Instead, consider contacting us via the method mentioned in https://github.com/SpiderLabs/ModSecurity under the 'Security issue' heading.

I agree that it is a DOM-based XSS and not a stored one, but I don't understand why:

http://localhost/juiceshop#/search?q=%3Ciframe%20src%3D%22javascript:alert(%60xss%60)%22%3E is not blocked, but
http://localhost/juiceshop/search?q=%3Ciframe%20src%3D%22javascript:alert(%60xss%60)%22%3E is blocked.

As the only difference is in the #, and the same thing appears in the little example:
SecRule ARGS "@contains test" "id:1,phase:1,t:none,t:lowercase,deny"
Process the request: localhost/?a=test, it will be blocked
Process localhost#/?a=test, it will pass.
I'm sorry, you were right on the way I reached you, I should have chosen a more direct approach in order to not expose anyone in the case my "issue" was confirmed.

For your simple case, if you type 'localhost#/?a=test' into a browser's URL bar, it will not include the '#' or anything that follows it in the HTTP request that it sends.  Because 'a=test' is not part of the request, then it will not be received by the Web Server, and it will not be seen by ModSecurity either.  Therefore the request does not meet the conditions to trigger your sample '@contains' rule.
You can confirm what the actual HTTP request looks like several ways, including:

as I mentioned before, use your Browser's Developer Tools (Network tab) to view the request
use a tool like wireshark or tcpdump to sniff the traffic
you could also have your web page try to read the query argument 'a' and see that it does not find the value 'test'

The juiceshop examples are fundamentally the same situation.  If the first example is typed into a URL bar, the xss payload content is not sent in the HTTP request (again, use your Browser's Developer Tools or a traffic sniffer to confirm),
whereas in the second example, the xss content is sent.


Add a "pchip" interpolation mode to RegularGridInterpolator.

What does this implement/fix?

Add a pchip interpolation kind to the RegularGridInterpolator. It implements a continuous, C^1 monotone interpolants, while the recently-merged cubic spline kind is C^2 continuous and global.
As a data point, Octave allows this (https://octave.sourceforge.io/octave/function/interp2.html), and I think it makes sense to have a tensor product monotone interpolant : global splines are prone to oscillations and overshooting, and if this happens, it's not easy for a user to do anything about it. OTOH, pchip is monotone by construction.
The diff is almost trivial, modulo that I had to move the RGI and interpn to a separate file to avoid circular imports. This has an unfortunate effect of messing up the GH history ($ git blame -C scipy/interpolate/_rgi.py does detect that this was written by Andreas Hillboll and Pauli)
Further improvements, can be done in a follow-up:

[x] Still need to fix up a merge conflict from a recent merge.
[x] Double-check the merge
[ ] Also need to think how to better test it: the actual implementation of either splines or this is only lightly tested (the interface is however).

The remaining lint failures,
scipy/interpolate/tests/test_interpolate.py:11:9: E128 continuation line under-indented for visual indent
scipy/interpolate/tests/test_interpolate.py:12:9: E128 continuation line under-indented for visual indent

are triggered by
from scipy.interpolate import (interp1d, interp2d, lagrange, PPoly, BPoly,
        splrep, splev, splantider, splint, sproot, Akima1DInterpolator,
        NdPPoly, BSpline)

IMO this is firmly into the "automated checks being unreasonable" and I'm going to ignore them.

Closing: this is split into two PRs: gh-16223 moves things around anf gh-16224 adds the new interpolation kind.


Prefer to have LIQUIBASE_HOME as a property so it can be passed on the commandline

https://github.com/liquibase/liquibase/blob/16337eee2f92e514ddc843064fc39bafcdd4e726/liquibase-cli/src/main/java/liquibase/integration/commandline/LiquibaseLauncher.java#L33
Is it possible to change the LIQUIBASE_HOME OS variable to a property so it can be passed on the java -jar liquibase-core.jar as a -D option ?
We have a hard time making this change to our deployment scripting to switch from java -jar notation to a bash script.
The majority of options can be passed on the commandline except these ones from the LiquibaseLauncher.

Hello! Thanks for creating this issue! i modify the title becaue supporting it as an argument in the properties file wouldnt make much sense but adding it as a property to pass on the command line sounds like a cool feature! I will add it to our queue of Feature Requests, but it can take a while for it to be address, you can always submitt a pr and we would love to help you working through it with you.

This was implemented on https://github.com/liquibase/liquibase/pull/4104 .


Refactor OpenSea API wrapper

This PR introduces:

dedicated file for common used constants
a new method to fetch OpenSea events with cursor-based pagination (offset pagination is deprecated)

Warning
The new method of cursor pagination with the OpenSea API is not reliable. There are often events missing that do exist (and are correctly returned when fetched individually).
E.g. find_minting_data.ipynb for Quaks
Missing tokens: [1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 2375, 2376, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789]
Trying to fetch event for missing tokens...
Downloaded 6000 events

I have included a function to retry for missing tokens, but this is only useful for the find_minting_data notebook, because we know in advance that there should be a minting event for each token_id. But for the pre-reveal notebooks this is not the case and fetching events for a lot of individual tokens would take too long...
As far as I know, my code works as intended and it's something on their end.
The offset navigation is already deprecated, but will be completely unavailable as of March 8

OpenSea has now disabled offset pagination completely.
{"offset":["extra fields not permitted"]}


Add, support on the Handlers for reading the cmds section.

minor changes on using an ENUM on some 'reserved' words for the DockerFile dictionary.

Signed-off-by: Paris Apostolopoulos<EMAIL_ADDRESS>moved running of commands further to the end to work inside workdir - order matters here
added howto use to manual
fixed some issues referenced at https://github.com/rhuss/docker-maven-plugin/pull/215
fixed some issues referenced at https://github.com/rhuss/docker-maven-plugin/pull/215
removed unused code
Signed-off-by: Christian Fischer<EMAIL_ADDRESS>Cleanup of https://github.com/rhuss/docker-maven-plugin/pull/215

Perfect, thanks ! I will work on it ASAP, guess 0.13.2 will be released during next week.

many thanks for the merge. my apologies for any formatting related change!

@Christian :)

Thanks a lot. I applied to branch integration which finally end up in a master.
I did some minor changes:

Introduced DockerfileKeyword with some utility function
Renamed runCmds to run. Although this might be a bit confusing with the "other"  (i.e. the section specifying start/stop behaviour), it is better to map dockerfile commands to maven config directives 1:1 so that there is no mismatch.


Video coding problem

When I play video from iPhone X, I can only play sound but not image, because the video Format: HEVC (H265), how to solve this problem?

+1


feat(telegraf): Add the ability to poll kubernetes prometheus endpoints

fixes #61
fixes #62
fixes #64

Dirty, but I like it.


Added additional actions to Jenkins pack

Jenkins
Status

Added additional actions

Description
Added four additional actions to the Jenkins pack (enable job, disable job, get job info and install plugin).
Checklist (tick everything that applies)

[ ] Metadata: pack.yaml, icon, structure (required for new packs)
[x] Version bump (required for changed packs)
[x] Code linting (required, can be done after the PR checks)
[ ] Tests (not required but really recommended)

Sorry for the delay.
The changes look good to me so I will go ahead and merge them into master - thanks!


Allow to bypass https redirection per frontend

Description
This is an attempt to implement #541.
The goal is to allow a container to bypass http -> https redirection using a label traefik.http.redirect.
This is my first PR on this project (and in golang), let me know if I've made mistakes :wink:
Dunno if I have to implement this new label for each provider or if you'd rather prefer to split the work in multiples PR's.

[x] Fix test
[x] Add test
[x] Update doc
[ ] Implement for every provider ?

Example Usage
➜ docker run -it --rm --name whoami emilevauge/whoami
Starting up on port 80

➜ curl -I --insecure http://whoami.localhost
HTTP/1.1 302 Found
Location: https://whoami.localhost:443/
Date: Tue, 11 Jul 2017 14:41:29 GMT
Content-Length: 5
Content-Type: text/plain; charset=utf-8

➜ curl -I --insecure https://whoami.localhost
HTTP/1.1 200 OK
Content-Length: 256
Content-Type: text/plain; charset=utf-8
Date: Tue, 11 Jul 2017 14:41:45 GMT

➜ docker run -it --rm --name whoami --label "traefik.http.redirect=false" emilevauge/whoami
Starting up on port 80

➜ curl -I --insecure http://whoami.localhost
HTTP/1.1 200 OK
Content-Length: 255
Content-Type: text/plain; charset=utf-8
Date: Tue, 11 Jul 2017 14:42:09 GMT

➜ curl -I --insecure https://whoami.localhost
HTTP/1.1 200 OK
Content-Length: 256
Content-Type: text/plain; charset=utf-8
Date: Tue, 11 Jul 2017 14:42:20 GMT

Assuming endpoint configuration is :
defaultEntryPoints = ["http", "https"]
[entryPoints]
  [entryPoints.http]
  address = ":80"
    [entryPoints.http.redirect]
    entryPoint = "https"
  [entryPoints.https]
  address = ":443"
    [entryPoints.https.tls]
      [[entryPoints.https.tls.certificates]]
      CertFile = "www.crt"
      KeyFile = "www.key"

Currently this code was implemented in https://github.com/containous/traefik/pull/1236
That allows you to enable redirection per frontend. It has already been merged, and should be available for testing under the experimental tag!

@dtomcej @ldez This is not a dupplicate for the following reasons.
Of course you can add Location header using new middleware, but here dont want request to reach backend application if the stream is not secure.
Using #1236 + add header Location allow the first request to reach application backend on an unsecure stream, and so, the response sent over unsecure stream too.
If backend application is returning a HTTP/200 response, your browser will not be able to handle redirection.
We need to upgrade http to https on frontend proxy and only secure communications with backend application. This PR is to allow some services to force http without being redirected to https using traefik default http + https redirection entrypoint config.
Header middleware canot be used to handle this for me.
Please read the following usecase : https://github.com/containous/traefik/issues/541#issuecomment-238748845

@eliecharra I think you misunderstand.
That PR has 2 components:

The ability to add custom headers
It implements github.com/unrolled/secure to provide a secure middleware layer, that handles a bunch of common security functions.

in your case, the middleware SSLRedirect function does not pass the request on to the backend, it halts the middleware chain, and returns a redirect response.
Feel free to browse https://github.com/unrolled/secure, as it outlines the options that were added.
You also have the choice of returning a 301 or a 302 with your redirect, depending on if you want it to be cached or not!

Duplicate of #1236
https://github.com/containous/traefik/blob/master/docs/basics.md#security-headers

@dtomcej We have a similar usecase as OP. I just want to clarify if it is indeed possible for a particular frontend to SKIP a default http->https redirect by using SSLRedirect = false. If that is indeed the case how does that work with kubernetes ingress?

Traefik operates in 3 layers:

Entrypoints
Frontends
Backends

If you force a blanket redirect on the entrypoints, traffic never reaches frontends.
To accomplish what you want, you need to not put a default redirect on the entrypoint, but instead put them on the frontends.
Unfortunately, the core framework code implemented in 1236 only provides the code for the core toml configuration.
You can either open a ticket similar to #2028 but for kubernetes, or you can keep an eye out, because it is what I will be working on once 2028 is done.
Regardless, Since this ticket is closed, I will not be continuing discussion here :)


Sign in not possible behind reverse proxy with sub-path

Description
Running Gitea behind a Reverse Proxy using a sub-path doesn't allow login.
This issue was first occurring with the update 1.21.10 -> 1.21.11 and
continues with 1.22.0.
After entering credentials and pressing the "Sign In" button, the
unauthenticated "root" site is shown again, like after a logout.
From the release notes
we noted the following change which seems suspicious:

Fix to delete the cookie when AppSubURL is non-empty (#30375) (#30468)

Therefore, we checked our configurations and ensured, they used trailing slashes:
$ grep -r "git-staging" /etc/gitea-staging /etc/tinyproxy/
/etc/gitea-staging/app.ini:ROOT_URL = https://<IP_ADDRESS>/git-staging/
/etc/tinyproxy/tinyproxy.conf:ReversePath "/git-staging/" "http://<IP_ADDRESS>:3333/"

The logs from our reverse proxy show a behavior as requested by the
documentation:
May 29 16:16:31 debian-git tinyproxy[390434]: Connect (file descriptor 5): <IP_ADDRESS>
May 29 16:16:31 debian-git tinyproxy[390434]: Request (file descriptor 5): POST /git-staging/user/login HTTP/1.1
May 29 16:16:31 debian-git tinyproxy[390434]: Rewriting URL: /git-staging/user/login -> http://<IP_ADDRESS>:3333/user/login
May 29 16:16:31 debian-git tinyproxy[390434]: No upstream proxy for <IP_ADDRESS>
May 29 16:16:31 debian-git tinyproxy[390434]: opensock: opening connection to <IP_ADDRESS>:3333
May 29 16:16:31 debian-git tinyproxy[390434]: opensock: getaddrinfo returned for <IP_ADDRESS>:3333
May 29 16:16:31 debian-git tinyproxy[390434]: Established connection to host "<IP_ADDRESS>" using file descriptor 6.
May 29 16:16:31 debian-git tinyproxy[390434]: Closed connection between local client (fd:5) and remote client (fd:6)
May 29 16:16:31 debian-git tinyproxy[390434]: Connect (file descriptor 5): <IP_ADDRESS>
May 29 16:16:31 debian-git tinyproxy[390434]: Request (file descriptor 5): GET /git-staging/ HTTP/1.1
May 29 16:16:31 debian-git tinyproxy[390434]: Rewriting URL: /git-staging/ -> http://<IP_ADDRESS>:3333/
May 29 16:16:31 debian-git tinyproxy[390434]: No upstream proxy for <IP_ADDRESS>
May 29 16:16:31 debian-git tinyproxy[390434]: opensock: opening connection to <IP_ADDRESS>:3333
May 29 16:16:31 debian-git tinyproxy[390434]: opensock: getaddrinfo returned for <IP_ADDRESS>:3333
May 29 16:16:31 debian-git tinyproxy[390434]: Established connection to host "<IP_ADDRESS>" using file descriptor 6.
May 29 16:16:31 debian-git tinyproxy[390434]: Closed connection between local client (fd:5) and remote client (fd:6)

We see the equivalent to

Make the reverse-proxy pass https://common.example.com/gitea/foo to http://gitea:3000/foo

Rewriting URL: /git-staging/user/login -> http://<IP_ADDRESS>:3333/user/login

The corresponding Gitea logs are:
May 29 16:53:07 debian-git gitea[390439]: 2024/05/29 16:53:07 ...eb/routing/logger.go:102:func1() [I] router: completed POST /user/login for <IP_ADDRESS>:56322, 303 See Other in 68.6ms @ auth/auth.go:196(auth.SignInPost)
May 29 16:53:07 debian-git gitea[390439]: 2024/05/29 16:53:07 .../context_response.go:70:HTML() [D] Template: home
May 29 16:53:07 debian-git gitea[390439]: 2024/05/29 16:53:07 ...eb/routing/logger.go:102:func1() [I] router: completed GET / for <IP_ADDRESS>:56324, 200 OK in 3.6ms @ web/home.go:32(web.Home)

Access logs in Gitea:
<IP_ADDRESS> - - [29/May/2024:16:52:57 +0200] "GET /user/login HTTP/1.1" 200 10629 "" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:126.0) Gecko/20100101 Firefox/126.0"
<IP_ADDRESS> - - [29/May/2024:16:53:00 +0200] "POST /user/login HTTP/1.1" 303 0 "" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:126.0) Gecko/20100101 Firefox/126.0"
<IP_ADDRESS> - - [29/May/2024:16:53:00 +0200] "GET / HTTP/1.1" 200 14214 "" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:126.0) Gecko/20100101 Firefox/126.0"
<IP_ADDRESS> - - [29/May/2024:16:53:02 +0200] "GET /user/login?redirect_to=%2fgit-staging%2f HTTP/1.1" 200 10629 "" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:126.0) Gecko/20100101 Firefox/126.0"
<IP_ADDRESS> - - [29/May/2024:16:53:07 +0200] "POST /user/login HTTP/1.1" 303 0 "" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:126.0) Gecko/20100101 Firefox/126.0"
<IP_ADDRESS> - - [29/May/2024:16:53:07 +0200] "GET / HTTP/1.1" 200 14214 "" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:126.0) Gecko/20100101 Firefox/126.0"

Resolving
After reverting commit b18c04ebde94e23d97da4958173faea843d5344f (and commenting
out two sections undefined afterwards, see patch), we are able to use the normal
login again, when using our custom built binary. Thus, this also shows that our
error is connected to this change.
Gitea Version
1.21.11 and 1.22.0
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
No response
Screenshots
No response
Git Version
2.39.2
Operating System
Debian Bookworm
How are you running Gitea?
The binary is pulled from the official server. Execution is happening through systemd on Debian 6.1.85-1 (2024-04-11)  86_64.
The Gitea server is listening locally via HTTP and is served by a tinyproxy reverse proxy. TLS is terminated by stunnel in front of tinyproxy.
Database
SQLite

After reverting commit https://github.com/go-gitea/gitea/commit/b18c04ebde94e23d97da4958173faea843d5344f, we are able to use the normal login again,
" fix: Fix to delete cookie when AppSubURL is non-empty #30375 "

@jtran would you like to take a look?

Sadly GitHub doesn't let me upload a file with .path extension. I changed it to .txt instead.
diff.txt
This diff shows the revert plus two comments that allowed us to login again.

No, deleting cookies, using a private window etc. did not work. We already tried this first, due to #29757 and #29881.
The POST request for login has the following cookies set:Set-Cookie: yummy_magical_cookie=/git-staging/; path=/
Cookie: i_like_gitea=XXX; _csrf=XXX; yummy_magical_cookie=/git-staging/

I worked with @jtran on this change for bug we were seeing in a deployment that is also behind a reverse proxy (nginx in our case) with a subpath of /app_path/. The set-cookie headers as a result of POST /app_path/user/login look like the following in my Firefox network tab:
set-cookie i_like_gitea=; Path=/app_path/; Max-Age=0; HttpOnly; Secure; SameSite=Lax
set-cookie i_like_gitea=<redacted>; Path=/app_path; HttpOnly; Secure; SameSite=Lax
set-cookie lang=; Path=/app_path/; Max-Age=0; HttpOnly; Secure; SameSite=Lax
set-cookie_csrf=; Path=/app_path; Max-Age=0; HttpOnly; Secure; SameSite=Lax
set-cookie redirect_to=; Path=/app_path; Max-Age=0; HttpOnly; Secure; SameSite=Lax
set-cookie redirect_to=; Path=/app_path/; Max-Age=0; HttpOnly; Secure; SameSite=Lax

@LauKr based on my reading of your config, it appears like your cookies should set Path=/git-staging, but it appears that's not happening from the Set-Cookie header your posted.

@LauKr it doesn't seem right in your reverse proxy config.
Did you see any Set-Cookie for i_like_gitea? Which path is it on? It is directly related to Gitea login.
And, did you set any ReversePath or related config for your reverse proxy? I think they should be removed.

Since you are using tinyproxy, could you prepare a reproducible setup with detailed steps ? If you could provide a docker compose to reproduce, then I could try to debug it on my machine.

And one more thing, It seems that tinyproxy does some trick (black magic?) on the "cookie path". https://github.com/search?q=repo%3Atinyproxy%2Ftinyproxy REVERSE_COOKIE&type=code
I do not feel it is quite right. If there is a chance, I would recommend to try to use some modern and standard reverse proxies.

ps: I guess setting ReverseMagic No should resolve the problem, according to the code in tinyproxy:

Any update?

Any update?

Sorry, I need some time for the reproducible build.
Changing 'ReverseMagic' to No sadly didn't resolve the issue. I'll try debugging where the cookie went as soon as I find the time.

Hi,
sorry for the delay. I wrote a Dockerfile to reproduce the issue. Necessary files are attached:
setup_for_debugging.tar.gz
Building and running was tested using Podman, but should work with Docker as well:
podman build -t gitea_proxy_testing --file Dockerfile
podman run --rm -it --publish 8888:8888 gitea_proxy_testing:latest

The Dockerfile creates a container with Gitea and tinyproxy. The tinyproxy is accessible via port 8888.
Accessing Gitea via <IP_ADDRESS>:8888/git-staging/ was successful, but login was not possible, as described in the issue.

I guess the problem is caused by that the new cookie is correctly removed by the "deleting legacy code". So I think we could try to flip the order: first delete the legacy cookie, then set new cookie, then the new cookie won't be deleted.
-> Delete legacy cookie before setting new cookie #31306

Wait for backport to 1.22

When trying use a custom build on commit 5342a61124bf2d4fbe4c1d560b13866198149ac9, the problem was not fixed in the provided container setup.
I'll have a look at the proxy again, just in case.

Backport merged, wait for @LauKr 's confirmation and feedback.

Backport merged, wait for @LauKr 's confirmation and feedback.

It's said that the "fix" doesn't work.

I think it is a bug in tinyproxy. By using tcpdump, I can see:
Gitea tells tinyproxy:
HTTP/1.1 303 See Other
Cache-Control: max-age=0, private, must-revalidate, no-transform
Content-Type: text/plain; charset=utf-8
Location: /git-staging/
Set-Cookie: _csrf=en3AFom-bfjvNKBwckDCoPm17uQ6MTcxODA5OTk4NzE4NzcxMzAwMA; Path=/git-staging; Max-Age=86400; HttpOnly; SameSite=Lax
Set-Cookie: i_like_gitea=; Path=/git-staging/; Max-Age=0; HttpOnly; SameSite=Lax
Set-Cookie: i_like_gitea=fb422c79cf11bd1f; Path=/git-staging; HttpOnly; SameSite=Lax
Set-Cookie: lang=; Path=/git-staging/; Max-Age=0; HttpOnly; SameSite=Lax
Set-Cookie: lang=en-US; Path=/git-staging; HttpOnly; SameSite=Lax
Set-Cookie: _csrf=; Path=/git-staging; Max-Age=0; HttpOnly; SameSite=Lax
Vary: Accept-Encoding
X-Frame-Options: SAMEORIGIN
X-Gitea-Debug: RUN_MODE=dev
Date: Tue, 11 Jun 2024 09:59:47 GMT
Content-Length: 0
Connection: close

Tinyproxy tells browsers
HTTP/1.1 303 See Other
Via: 1.1 tinyproxy (tinyproxy/1.11.2)
Cache-Control: max-age=0, private, must-revalidate, no-transform
Content-Type: text/plain; charset=utf-8
Location: /git-staging/
Set-Cookie: _csrf=en3AFom-bfjvNKBwckDCoPm17uQ6MTcxODA5OTk4NzE4NzcxMzAwMA; Path=/git-staging; Max-

!!!!!!!! HERE, all other cookies are lost !!!!!!!!!!

Age=86400; HttpOnly; SameSite=Lax
Vary: Accept-Encoding
X-Frame-Options: SAMEORIGIN
X-Gitea-Debug: RUN_MODE=dev
Date: Tue, 11 Jun 2024 09:59:47 GMT
Content-Length: 0

I would suggest to use a professional reverse proxy like nginx, which is also small enough and I guess it won't cost more resources than tinyproxy.

Thanks for the effort.
We will try to debug tinyproxy and create a separate issue there. Hopefully observing tinyproxy will show a clear reason why it cannot handle the changes mode by the mentioned commit.
Testing with NGINX looks promising, however we will have to consider the feature set etc. first, before switching.

For reference, if anyone happens to have the same issue:
https://github.com/tinyproxy/tinyproxy/issues/403 describes a relevant issue:

All but the first of Set-Cookie headers in an HTTP response will be silently dropped by tinyproxy

The corresponding PR is still open: https://github.com/tinyproxy/tinyproxy/pull/435
However, we were able to confirm the fix by building a custom version of tinyproxy. As we use Debian, the Debian repository with corresponding release is used (https://salsa.debian.org/debian/tinyproxy/-/tags/debian%2F1.11.1-2) and the commits are applied on top.
Using this custom version of tinyproxy a login into Gitea is possible.
@wxiaoguang from my side this issue can be closed, as this is evidently no Gitea issue.

Thank you very much for the details!


show_switch API call

This needs to show details of a switch.  Since different switches have different details, this will require support from the switch backend---probably another function call in the plugin API there.

So, along with #550, we also need a show_switch API call for HaaS. Not sure if anyone working on these two calls? If not, I could work on them. @SahilTikale

#550 handles both of them. there is also a show_switch implementation in #567

Thanks for pointing it out. @kylehogan

#658 solved this, closing


Ignore shift select when selecting features from map in Manager

Describe the bug
If I use shift-select to select multiple features from map in Manager, it selects additional features seems like it selects all the features that are in between the two rows in the table, may be we should ignore shift - select when selecting from map but keep the cntrl+select for selecting multiple features.

Expected Behavior
it should not select the additional features.
Reproduction Steps & Sample
Test App: https://sg-em-devext.mapsdevext.arcgis.com/apps/instant/manager/index.html?appid=f69be4bf902e4494a8827b13c12ff769

Launch the app
Select a record from the map,
Press shift and select another feature, notice that additional features are being selected.

Other Relevant Info
No response

Looks good in devext

Verified.


Various improvements (see details)

Made HID target selection a little more accurate (added option for usage page selection)
Changed color packet protocol to match data sent while using the Razer Chroma Broadcast option in Ducky RGB
Adjusted Traffic_Init.txt to prepare the lighting for the Razer Chroma Broadcast protocol
Changed ColorSetter to fit a US layout and to adhere to the Razer Chroma Broadcast protocol
Changed ColorSetter::PushColors() to wait for a response from the keyboard before sending the next packet

Suggestions that I found that made it work for my own keyboard and setup. I am using a Ducky One 2 RGB (US layout) on the latest firmware (V1.01.06).

I'm glad you got it working! These are some great improvements and you make a good point regarding using Razer Chroma as a standard, however I cannot get this to work on my keyboard for two reasons. The keyboard layout is different as I am using a Scandinavian Ducky Shine 7, and I do not own any Razer products allowing me to use Chroma with the Ducky Shine 7 so it's hard to test it. This could be merged and a command line argument or something could be used to set layout/chroma, but I don't have the time for this currently.


Primary Code has unexpected behaviour when inlcuding lines to animate the top bar of the menu animation

When adding back in the lines to animate the top bar lines the arduino seems to refuse to run the project properly.
if (i > 7) {
    display.drawLine(0, 10, topbarLine[6][0], 10, WHITE);
    //display.drawLine(75, 5, topbarLine[7][1], 5, WHITE);
} else {
    //display.drawLine(0, 10, topbarLine[i][0], 10, WHITE);
    //display.drawLine(75, 5, topbarLine[i][1], 5, WHITE);
}

All variables and lists are defined properly and I don't seem to be running out of program memory. i also stays within the range of the list.

In the second version of the PCB I added an EEPROM module to store the byte arrays for the animations and the lists for the menu animation so hopefully it relieves some of the storage on the ATmega238p. Hopes are this issue is caused by an overflowing buffer or running out of flash storage while running the program. So by adding the permanent data in the EEPROM we can load only the parts we need into the buffer then flush them out to try and avoid overflowing it.


heroku: aliased to nocorrect heroku

when I run which heroku

zsh has a builtin which. You want to explicitly use the standalone executable:
/usr/bin/which heroku


dirty data exists in variant dataset

Upon reviewing the genomic data, i have identified inconsistencies between some reference nucleotides and those in the genome. For instance, within the expression dataset, two instances of data were detected where their corresponding reference nucleotides in the genome are both C.

It seems that the problem is isolated to the expression dataset, potentially occurring during the transition from the hg37 to hg38 genomic assembly.

Thanks @yangzhao1230 - I'll remove these samples from the dataset.
Will close the issue once the file online is replaced.

replaced


WIP Migrating functions from notebook to metapool.

Initial migrating of Rodolfo's new notebook functions to metapool. Minimal changes made to support the new notebook in development.

Can you add tests before I review?

@antgonza Ready for review. The code that supports each test is a little repetitive, and the metadata files could be named better.

@antgonza Eh, I cleaned up the notebook some - I removed the functionality that was no longer needed and replaced it with a call to the new PlateReplication() code. It's very complete and very well commented but references a specific project a lot. I didn't include the needed data files as one of them was very large. I think we could do with some smaller sample-files but I'll need to work with @RodolfoSalido or @mmbryant23 on that.

Just tested this and looks good. However, we didn't add the functionality of adding the 'contains_replicates' flag to the sample_sheet for the SPP to parse it. We had agreed on this when we were discussing the scope of this effort.

The functions that would need some changes are likely make_sample_sheet() and validate_and_scrub_sample_sheet. I have added another key to the Bioinformatics dictionary: 'contains_replicates' that gets a boolean True/False.

Should I raise this as a new issue ?

Yes, please open a new issue. Thank you for confirming that it almost works as expected.


在 latex 里面生成官方的本科生论文的封面（中文）。并且将页眉的徽标换成了红色的。

Thanks for your contributions! I have some comments on this PR :)

@gaocegege not sure whether we should use a latex-generated one or a pdf. Definitely latex one (this pr) seems to be more beautiful.


Fix the output range of the logistic op for 16x8 quantization mode

The 16x8-quantized logistic op supports only symmetric quantization.
It's basically the same as 825fb23d5951d5713a072cbb94467e813c35e6b6, but for the logistic op.

Hi @yishuangP, Can you please review this PR? Thank you !

Hi @yishuangP, Can you please review this PR? Thank you !

Hi @rdzhabarov ,Can you please review this PR? Thank you !


Lock entities failing

Hi,
I have the Sure Petcare integration up and running and everything works perfectly apart from locking the cat flap. It doesn't matter which lock I try to activate (all, in, or out) they all throw the following error:
Logger: homeassistant.components.websocket_api.http.connection
Source: components/surepetcare/lock.py:88
Integration: Home Assistant WebSocket API (documentation, issues)
First occurred: 12 May 2022, 23:59:33 (1 occurrences)
Last logged: 12 May 2022, 23:59:33
[139883864825472] ERROR (UN)LOCKING DEVICE - PLEASE CHECK IMMEDIATELY!
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 189, in handle_call_service
await hass.services.async_call(
File "/usr/src/homeassistant/homeassistant/core.py", line 1627, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1664, in _execute_service
await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 204, in handle_service
await service.entity_service_call(
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 677, in entity_service_call
future.result()  # pop exception if have
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 964, in async_request_call
await coro
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 714, in _handle_entity_call
await result
File "/usr/src/homeassistant/homeassistant/components/surepetcare/lock.py", line 88, in async_lock
await self.coordinator.lock_states_callbacksself._lock_state
File "/usr/local/lib/python3.9/site-packages/surepy/client.py", line 343, in lock_in
return await self._set_lock_state(device_id, LockState.LOCKED_IN)
File "/usr/local/lib/python3.9/site-packages/surepy/client.py", line 373, in _set_lock_state
raise SurePetcareError("ERROR (UN)LOCKING DEVICE - PLEASE CHECK IMMEDIATELY!")
surepy.exceptions.SurePetcareError: ERROR (UN)LOCKING DEVICE - PLEASE CHECK IMMEDIATELY!
I'm a relative beginner here so I have no idea where to start with debugging. If anyone could talk me through the next steps then I'd really appreciate it.
Many thanks.

I've finally had my 'you're an idiot' moment with this. I'd set up a separate account to log into Sure Pet from Home Assistant and hadn't given the new account the correct permissions. As soon as I changed the permissions, Home Assistant was able to change the lock states / pet locations etc. Maybe my foolishness will be able to help someone else...


Fix boost build errors when vcpkg path has spaces

This fixes Boost packages that depend on boost-modular-build-helper not installing due to an unquoted path. (eg. issue #2617)

Thanks for the PR! Looks like this one just got missed :)


feat: add online IDE support

Similar with https://github.com/wakatime/vscode-wakatime/pull/220
In online IDE like GitHub Codespaces, you can pass secret env variable to the online container. And then codetime extension will automatically use this env variable to init token.

Thanks for your contribution, I have merged the code into the main branch!


Update README.md

Thanks!

(@mattvenn, as an aside, I would always recommend sending a PR from a branch with a different name - you'll now need to trash your clone otherwise your main will always have one more commit than the upstream main).


softcode number of examples and variance for data synthesis

Closes #148
Passes value of variance (0.87) and number of examples (50) in data_synthesis.DataSynthesis through the __init__ method of the LocalOptimizer instead of hardcoding it.

@mmirman could you please check it, thank you!


支持 URL后面添加socket_timeout？

What happened?
String address = “jdbc:clickhouse://10.100.xx.xxx:8123?socket_timeout=300000”;
Affects Versions
1.18
What are you seeing the problem on?
Clickhouse-Client
How to reproduce
No response
Relevant log output
No response
Anything else
No response
Are you willing to submit a PR?

[X] Yes I am willing to submit a PR!

Code of Conduct

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

Hi @qiunanx
之前已经有PR，支持了带参数的url，不过一直没Merge；
可以先关注下：https://github.com/itinycheng/flink-connector-clickhouse/pull/143