The SvelteKit SSR Documentation Examples Enhancements

Improve documentation
I dived into SvelteKit implementation of Supabase SSR.  The SvelteKit documentation may be improved as suggested hereunder..
A link to the page which needs improvement :
https://supabase.com/docs/guides/auth/server-side/creating-a-client?framework=sveltekit
Describe the problem
Here is my working tutorial  how to implement Supabase Auth SSR in SvelteKit fully. Mainly it gives the missing part how to implement invalidation so auth/session state is in sync between server and browser or  between more opened browser tabs.
Feel free to use this tutorial in Supabase website somewhere.
Describe the improvement
Sorry examples are in js not ts.
Root +layout.svelte with invalidation example would be really welcomed. This really seemed like a missing part for me. Without invalidaton the app is  not in sync.
// src/routes/+layout.svelte
<script>
    import { invalidate } from '$app/navigation';
    import { onMount } from 'svelte';

    export let data;

    $: ({ supabase } = data);

    onMount(async () => {
       	const {
		data: { subscription }
	} =  supabase.auth.onAuthStateChange((event, _session) => {
            invalidate('supabase:auth');
        });
        return () => subscription.unsubscribe();
    });

</script>

SvelteKit 2 needs a path "/" for a cookie,  not ann empty string.
// hooks.server.js
// SvelteKit v2
import { PUBLIC_SUPABASE_URL, PUBLIC_SUPABASE_ANON_KEY } from '$env/static/public'
import { createServerClient } from '@supabase/ssr'

export const handle = async ({ event, resolve }) => {
  event.locals.supabase = createServerClient(PUBLIC_SUPABASE_URL, PUBLIC_SUPABASE_ANON_KEY, {
    cookies: {
     get: (key) => event.cookies.get(key),
      /**
       * Note: You have to add the `path` variable to the
       * set and remove method due to sveltekit's cookie API
       * requiring this to be set, setting the path to '/'
       * will replicate previous/standard behaviour (https://kit.svelte.dev/docs/types#public-types-cookies)
       */
      set: (key, value, options) => {
        event.cookies.set(key, value, { ...options, path: '/' })
      },
      remove: (key, options) => {
        event.cookies.delete(key, { ...options, path: '/' })
      },
    },
  })

  /**
   * a little helper that is written for convenience so that instead
   * of calling `const { data: { session } } = await supabase.auth.getSession()`
   * you just call this `await getSession()`
   */
  event.locals.getSession = async () => {
    let {
      data: { session },
    } = await event.locals.supabase.auth.getSession()

    // solving the case if the user was deleted from the database but the browser still has a cookie/loggedin user
    // +lauout.server.js will delete the cookie if the session is null
    const { data: getUserData, error: err }  = await event.locals.supabase.auth.getUser()
    if (getUserData.user == null) {
      session = null
    }

    return session
  }

   return resolve(event, {
    filterSerializedResponseHeaders(name) {
      return name === 'content-range'
    },
  })
}

The rest full code for login, logout, update , reset  etc. is in the tutorial.
Additional context
Important issue is for example to show how to protect sensitive pages with session check and redirect (or maybe more generally in hooks.server.js). You can see this in my tutorial

Can multiple routes still be protected using hooks with the new ssr? I am using the sequence helper as explained by the docs for the old auth helpers, but the handle nukes my github login immediately and the session is always null (login works OK and session is retrieved accordingly if i do not set this second handle)
import { PUBLIC_SUPABASE_URL, PUBLIC_SUPABASE_ANON_KEY } from '$env/static/public';
import { createServerClient } from '@supabase/ssr';
import { type Handle, redirect, error } from '@sveltejs/kit';
import { sequence } from '@sveltejs/kit/hooks';

const publicPages = ['/auth']; // Define the list of public pages here

const supabase: Handle = async ({ event, resolve }) => {
	event.locals.supabase = createServerClient(PUBLIC_SUPABASE_URL, PUBLIC_SUPABASE_ANON_KEY, {
		cookies: {
			get: (key) => event.cookies.get(key),
			/**
			 * Note: You have to add the `path` variable to the
			 * set and remove method due to sveltekit's cookie API
			 * requiring this to be set, setting the path to an empty string
			 * will replicate previous/standard behaviour (https://kit.svelte.dev/docs/types#public-types-cookies)
			 */
			set: (key, value, options) => {
				event.cookies.set(key, value, { ...options, path: '/' });
			},
			remove: (key, options) => {
				event.cookies.delete(key, { ...options, path: '/' });
			}
		}
	});
	/**
	 * a little helper that is written for convenience so that instead
	 * of calling `const { data: { session } } = await supabase.auth.getSession()`
	 * you just call this `await getSession()`
	 */
	event.locals.getSession = async () => {
		const {
			data: { session }
		} = await event.locals.supabase.auth.getSession();
		return session;
	};

	return resolve(event, {
		filterSerializedResponseHeaders(name) {
			return name === 'content-range';
		}
	});
};

const authorization: Handle = async ({ event, resolve }) => {
	const isPublicPage = publicPages.some((publicPage) => event.url.pathname.startsWith(publicPage));
	console.log(event.url.pathname);

	if (!isPublicPage) {
		// The page is not in the public pages list, proceed with authorization check
		const { session } = await event.locals.supabase.auth.getSession();
		console.log(session);
		if (!session) {
			// The user is not signed in
			console.log('should redirect');
			throw redirect(307, '/auth/login');
		}
		console.log('Session exists');
		console.log(session);
	}
	return resolve(event);
};

export const handle: Handle = sequence(supabase, authorization);

Wow, great job! Love how in-depth the tutorial is.
One thing I would point out that you might want to change in your tutorial:
event.locals.getSession = async () => {
    let {
      data: { session },
    } = await event.locals.supabase.auth.getSession()

    // solving the case if the user was deleted from the database but the browser still has a cookie/loggedin user
    // +lauout.server.js will delete the cookie if the session is null
    const { data: getUserData, error: err }  = await event.locals.supabase.auth.getUser()
    if (getUserData.user == null) {
      session = null
    }

    return session
  }

As you mentioned, we have a warning in our docs that using getSession in a server environment can open a security hole in your application, since it does not guarantee that the returned session is valid.
The risk is removed if you call getUser() first, since getUser will guarantee that the stored session is valid, and calling getSession immediately after will leave no room for anyone to modify the stored session. So instead I would do this:
event.locals.getSession = async () => {
    const { data: getUserData, error: err }  = await event.locals.supabase.auth.getUser()

     let {
      data: { session },
    } = await event.locals.supabase.auth.getSession()

    return session
  }

Thank you very much @charislam. Great addition.
I will update my pull request in matter. The tutorial has already been updated.

Is not this just enoug (not to confuse data variable)?
event.locals.getSession = async () => {
   await event.locals.supabase.auth.getUser()

     let {
      data: { session },
    } = await event.locals.supabase.auth.getSession()

    return session
  }

I have updated the relevant pull request https://github.com/supabase/supabase/pull/21202
If the pull request is merged we may close this issue as well.

Thanks! Upon reviewing my comment, I realized I wasn't quite rigorous enough, so I've edited it, the key points being:

Needing to check for errors in getUser
Passing along the user from getUser, which should be used instead of the user data in getSession

Really appreciate the PR! We're working through some changes to SvelteKit docs, including figuring out what we want to recommend as best practices, so I'm going to take a look at it in conjunction with that. Might take a bit longer than a quick review, but your work is definitely appreciated ❤ and we're going to incorporate it somehow!

Quite a bigger change that affects how we can be getting user in client.
On the other hand this attitude may be much more secure to move auth processess to hooks.server as it is run for every request. Which is not the case for +layout files where you need be quite carefull as disucced
https://github.com/sveltejs/kit/issues/6315

So following your advice the other files should look someting like this?
// +layout.server.js
export const load = async (event) => {
    const { session, user } = await event.locals.getSessionAndUser()

    return {
        session,
        user
    };
};

// +layout.js
import { PUBLIC_SUPABASE_ANON_KEY, PUBLIC_SUPABASE_URL } from '$env/static/public'
import { combineChunks, createBrowserClient, isBrowser, parse } from '@supabase/ssr'

export const load = async ({ fetch, data, depends }) => {
    depends('supabase:auth')

    const supabase = createBrowserClient(PUBLIC_SUPABASE_URL, PUBLIC_SUPABASE_ANON_KEY, {
        global: {
            fetch,
        },
        cookies: {
            get(key) {
                if (!isBrowser()) {
                    return JSON.stringify(data.session)
                }
                const cookie = combineChunks(key, (name) => {
                    const cookies = parse(document.cookie)
                    return cookies[name]
                })
                return cookie
            },
        },
    })

    return {
        supabase,
        session: data.session,
        user: data.user
    }
}

// + page.server.js
// protected route
export async function load({ locals: { getSessionAndUser  }}) {
    // redirect if there is no user session
    let {  session,  user } = await getSessionAndUser()

    if (!session) {
        redirect(303, '/');
    }
}

Wow, great job! Love how in-depth the tutorial is.
One thing I would point out that you might want to change in your tutorial:
event.locals.getSession = async () => {
    let {
      data: { session },
    } = await event.locals.supabase.auth.getSession()

    // solving the case if the user was deleted from the database but the browser still has a cookie/loggedin user
    // +lauout.server.js will delete the cookie if the session is null
    const { data: getUserData, error: err }  = await event.locals.supabase.auth.getUser()
    if (getUserData.user == null) {
      session = null
    }

    return session
  }

As you mentioned, we have a warning in our docs that using getSession in a server environment can open a security hole in your application, since it does not guarantee that the returned session is valid.
It's better practice to call getUser() first, since getUser will check that the stored session is signed by a valid key. So instead I would do this (also returning the user object from getUser as a secure source of user data). In fact, if you only ever need the user and not the access token, you might even consider solely using getUser here:
event.locals.getSessionAndUser = async () => {
    const { data: user, error: err }  = await event.locals.supabase.auth.getUser()

  let session
   if (err) {
       return { session, user: null }
   }
   else {
     session = (await event.locals.supabase.auth.getSession()).data?.session
  }

    return {session, user}
  }

what does this look like for typescript? The supabase documentation does not do too much of a good job explaining the types/shapes of the values returned by the auth functions...

Somewhat related to the general discussion of Auth documentation. I do like the fact, that we can easily change the environment (Next.js, Sveltekit...) with tabs.
Not less convenient would be a way to just switch between JS and TS.
I believe this is important, especially for such fragile code parts as Auth.
When in doubt, JS should probably be the standard first choice.

I have edited + page.server.js hereabove  with two options how to check session.:
// + page.server.js
// protected route
export async function load({ locals: { getSessionAndUser  }}) {
    // redirect if there is no user session
    let {  session,  user } = await getSessionAndUser()

    if (!session) {
        redirect(303, '/');
    }
}

// or maybe
//import { redirect } from "@sveltejs/kit"
// export async function load({ parent } ) {
// 	const data = await parent()
// 	const session = data.session
//     // if the user is not logged in redirect back to the home page
// 	if (!session) {
// 		redirect(303, '/');
// 	}
//   }

I am not sure which one would be considered as a best practice.

Here are the "final" examples in Typescript:
// hooks.server.ts
import {  PUBLIC_SUPABASE_URL, PUBLIC_SUPABASE_ANON_KEY, } from "$env/static/public";
import { createServerClient } from "@supabase/ssr";
import type { Handle } from "@sveltejs/kit";

export const handle: Handle = async ({ event, resolve }) => {
  event.locals.supabase = createServerClient(
    PUBLIC_SUPABASE_URL,
    PUBLIC_SUPABASE_ANON_KEY,
    {
      cookies: {
        get: (key) => event.cookies.get(key),
        /**
         * Note: You have to add the `path` variable to the
         * set and remove method due to sveltekit's cookie API
         * requiring this to be set, setting the path to an empty string
         * will replicate previous/standard behaviour (https://kit.svelte.dev/docs/types#public-types-cookies)
         */
        set: (key, value, options) => {
          event.cookies.set(key, value, { ...options, path: "/" });
        },
        remove: (key, options) => {
          event.cookies.delete(key, { ...options, path: "/" });
        },
      },
    }
  );

  event.locals.getSessionAndUser = async () => {
    const { data: user, error: err } =
      await event.locals.supabase.auth.getUser();
    let session;
    if (err) {
      return { session, user: null };
    } else {
      session = (await event.locals.supabase.auth.getSession()).data?.session;
    }
    return { session, user };
  };

  return resolve(event, {
    filterSerializedResponseHeaders(name) {
      return name === "content-range";
    },
  });
};

// +layout.server.ts
import type { LayoutServerLoad } from "./$types";

export const load: LayoutServerLoad = async (event) => {
  const { session, user } = await event.locals.getSessionAndUser();
  return {
    session,
    user,
  };
};

// +layout.ts
import type { LayoutLoad } from "./$types";
import { createBrowserClient, isBrowser, parse } from "@supabase/ssr";

export const load: LayoutLoad = async ({ fetch, data, depends }) => {
  depends("supabase:auth");

  const supabase = createBrowserClient(  PUBLIC_SUPABASE_URL, PUBLIC_SUPABASE_ANON_KEY,
    {
      global: {
        fetch,
      },
      cookies: {
        get(key) {
          if (!isBrowser()) {
            return JSON.stringify(data.session);
          }
          const cookie = combineChunks(key, (name) => {
            const cookies = parse(document.cookie);
            return cookies[name];
          });
          return cookie;
        },
      },
    }
  );

  return {
    supabase,
    session: data.session,
    user: data.user,
  };
};

// +layout.svelte
<script>
    import { invalidate } from '$app/navigation';
    import { onMount } from 'svelte';

     export let data;

    $: ({ supabase } = data);
    onMount(async () => {
        supabase.auth.onAuthStateChange((event, _session) => {
            invalidate('supabase:auth');
        });
        return () => subscription.unsubscribe();
    });
</script>

// +page.server.ts
// protected server rooute
import { redirect } from "@sveltejs/kit"
import type { PageServerLoad } from './$types';

export const load: PageServerLoad = async ({ parent } ) =>  {
	const data = await parent()
	const session = data.session
    // if there is no user's sessiion redirect back to the home page
	if (!session) {
		redirect(303, '/');
	}
  }

charislam I have just discovered that with supabase.auth.getUser()  we are facing  infamouse bug  Invalid Refresh Token: Refresh Token Not Found #436 now.

As the majority of proposals are in the official documentation now I am closing this.

What is calling safeGetSession?
Does this happen when you follow the code templates of updated Supabase docs https://supabase.com/docs/guides/auth/server-side/creating-a-client?queryGroups=framework&framework=sveltekit&queryGroups=environment&environment=hooks ?

@kvetoslavnovak @ssantoshp There is a longer discussion about problems surrounding this topic at:
https://github.com/supabase/supabase-js/issues/1010 and https://github.com/supabase/auth-js/pull/874
No solution so far, so I am in waiting mode as well, but since this is such a complex and security critical topic, I am super the great Supabase team will figure this out soon.

@codepainting thank you for letting me know.

Did you find a solution to this? @kvetoslavnovak @codepainting @santoshlite
I am getting TypeError: safeGetSession is not a function following the most up-to-date docs at https://supabase.com/docs/guides/auth/server-side/sveltekit

@henrisuurorg
Also encountered  TypeError: safeGetSession is not a function  issue ,  beause  made a mistake hooks.server.ts location.
Moving hooks.server.ts file from  /src/routes/  to  /src  sloved  the issue by making the safeGetSession  function accessiable in the appropriate location.


[AI Agent idea]Product feature specification document

A detailed description of each feature in a product, including its purpose, functionality, and technical specifications, serving as a reference for the development team.

hello i am interested on this issue and want to contribute to it, before assigning me this issue can you please tell me more about it.

Yes of cource. This AI Agent is a Product feature specification document generator. We can dynamically add product types, target audience, functionality, and other information to the prompt using variables. In the prompt, we can specify the expected template style, such as Section 1: the format is [markdown headline 1], and the title is [Introduction].

Hello @wenzhuo2022 i have solved this issue and genrated an pull request #2945 . Is there any changes are required in this ?? Can you please merge it.

/assign @Vinay94278


[Issue 2800] workflowgroup collection links

References
Fixes GitHub issue
MUST BE MERGED ALONGSIDE https://github.com/DSpace/dspace-angular/pull/829
Description
This PR will add support so that links can be grouped under a certain string.
Instructions for Reviewers
Build the code & retrieve a collection in a rest call, look at the "_links" section, the workflow group links will be grouped under the "workflowGroups" string.
Checklist
This checklist provides a reminder of what we are going to look for when reviewing your PR. You need not complete this checklist prior to creating your PR (draft PRs are always welcome). If you are unsure about an item in the checklist, don't hesitate to ask. We're here to help!

[X] My PR is small in size (e.g. less than 1,000 lines of code, not including comments & integration tests). Exceptions may be made if previously agreed upon.
[X] My PR passes Checkstyle validation based on the Code Style Guide.
[X] My PR includes Javadoc for all new (or modified) public methods and classes. It also includes Javadoc for large or complex private methods.
[X] My PR passes all tests and includes new/updated Unit or Integration Tests based on the Code Testing Guide.
[X] If my PR includes new, third-party dependencies (in any pom.xml), I've made sure their licenses align with the DSpace BSD License based on the Licensing of Contributions documentation.
[X] If my PR modifies the REST API, I've linked to the REST Contract page (or open PR) related to this change.

Tested again alongside corresponding Angular PR: https://github.com/DSpace/dspace-angular/pull/829  Looks good!  Merging both!


Interface type checking does not work with T::Struct

Input
→ View on sorbet.run
# typed: strict

module MyInterface
  include Kernel
  extend T::Helpers
  extend T::Sig
  interface!

  sig {abstract.returns(String)}
  def fun; end
end

class A < T::Struct
  include MyInterface

  prop :fun, T::Boolean # should not type check!
end

Observed output
No errors! Great job.

Expected behavior
It should print
Return type T::Boolean does not match return type of abstract method MyInterface#fun

Right now, interface and override checking will ignore DSL-generated methods because otherwise they would produce a number of errors that would make them unusable in practice. (For example, if you can't explicitly write a sig on a DSL-generated method, then you also can't explicitly write an implementation in that sig, but we demand that implementation appear explicitly in the types of things which implement abstract methods!) That however also means we miss out on useful error messages, like the one desired above.

we're experiencing the same bug as well. this makes it actually quite dangerous to use an interface on t::struct since the types do not actually need to match.


issue opening the data frame

Description
What steps will reproduce the problem?

pandas.read_csv("read any csv)
Traceback
  File "/Users/rchock001c/opt/anaconda3/lib/python3.7/site-packages/pandas/core/generic.py", line 5272, in __getattr__
    if self._info_axis._can_hold_identifiers_and_holds_name(name):
  File "/Users/rchock001c/opt/anaconda3/lib/python3.7/site-packages/pandas/core/generic.py", line 5272, in __getattr__
    if self._info_axis._can_hold_identifiers_and_holds_name(name):
  File "/Users/rchock001c/opt/anaconda3/lib/python3.7/site-packages/pandas/core/generic.py", line 5272, in __getattr__
    if self._info_axis._can_hold_identifiers_and_holds_name(name):
  [Previous line repeated 992 more times]
  File "/Users/rchock001c/opt/anaconda3/lib/python3.7/site-packages/pandas/core/generic.py", line 493, in _info_axis
    return getattr(self, self._info_axis_name)
  File "/Users/rchock001c/opt/anaconda3/lib/python3.7/site-packages/pandas/core/generic.py", line 5270, in __getattr__
    return object.__getattribute__(self, name)
  File "pandas/_libs/properties.pyx", line 63, in pandas._libs.properties.AxisProperty.__get__
  File "/Users/rchock001c/opt/anaconda3/lib/python3.7/site-packages/pandas/core/generic.py", line 5270, in __getattr__
    return object.__getattribute__(self, name)
RecursionError: maximum recursion depth exceeded while calling a Python object

Versions

Spyder version: 4.1.5
Python version: 3.7.0
Qt version: 5.9.6
PyQt5 version: 5.9.2
Operating System: Darwin 19.6.0

Dependencies

# Mandatory:
applaunchservices >=0.1.7      :  0.2.1 (OK)
atomicwrites >=1.2.0           :  1.4.0 (OK)
chardet >=2.0.0                :  3.0.4 (OK)
cloudpickle >=0.5.0            :  1.5.0 (OK)
diff_match_patch >=20181111    :  20200713 (OK)
intervaltree                   :  None (OK)
IPython >=4.0                  :  7.16.1 (OK)
jedi =0.17.1                   :  0.17.1 (OK)
nbconvert >=4.0                :  5.6.1 (OK)
numpydoc >=0.6.0               :  1.1.0 (OK)
parso =0.7.0                   :  0.7.0 (OK)
pexpect >=4.4.0                :  4.8.0 (OK)
pickleshare >=0.4              :  0.7.5 (OK)
psutil >=5.3                   :  5.7.0 (OK)
pygments >=2.0                 :  2.6.1 (OK)
pylint >=1.0                   :  2.4.4 (OK)
pyls >=0.34.0;<1.0.0           :  0.34.1 (OK)
qdarkstyle >=2.8               :  2.8.1 (OK)
qtawesome >=0.5.7              :  0.7.2 (OK)
qtconsole >=4.6.0              :  4.7.5 (OK)
qtpy >=1.5.0                   :  1.9.0 (OK)
rtree >=0.8.3                  :  0.9.4 (OK)
sphinx >=0.6.6                 :  3.1.2 (OK)
spyder_kernels >=1.9.4;<1.10.0 :  1.9.4 (OK)
watchdog                       :  None (OK)
zmq >=17                       :  19.0.1 (OK)

# Optional:
cython >=0.21                  :  0.29.21 (OK)
matplotlib >=2.0.0             :  3.2.2 (OK)
numpy >=1.7                    :  1.18.5 (OK)
pandas >=0.13.1                :  1.0.5 (OK)
scipy >=0.17.0                 :  1.5.0 (OK)
sympy >=0.7.3                  :  1.6.1 (OK)

Hey @RamG79, thanks for reporting. This looks like an installation issue with Pandas.
To fix it, please open Teminal.app and run there
conda install -f pandas

If that doesn't fix the issue, please run
conda install pandas=1.1

Finally, if the issue persists, I'm afraid you'll have to reinstall Anaconda. For that, please our video about it.

@ccordoba12  Thank you. "conda install -f pandas" fixed the problem... actually I started seeing this after upgrading the Spyder version from 4.1.4 to 4.1.5 - so looks like during that process some links got messed up. It is working fine now. Appreciate your time and advise. Thanks again.


Cant change Morshu images.

I tried to change the images that the program displays by modifying the res.qrc file. Even after I do it, it still doesn't change. I updated res_rc.py and everything.

If you have the morshutalk package installed, python might be using the res_rc.py file from the installed package instead of the one you edited. Run pip uninstall morshutalk then try again.

I did and now it shows nothing. Are there certain dimensions the image has to be?


add is_live and free courses to combined product mart

What are the relevant tickets?

https://github.com/mitodl/hq/issues/3992
Description (What does it do?)

Adding is_live and 'free' courses to marts__combined__products so that it can be used as part of the Open for enrollment filter in https://bi.ol.mit.edu/superset/dashboard/25/

The calculated field Open for enrollment should return 72 results, which should match with https://mitxonline.mit.edu/api/v2/courses/?courserun_is_enrollable=true&live=true&page__live=true
is_live = true is same as live=true&page__live=true filter used on MITx Online api.
free course e.g. https://mitxonline.mit.edu/courses/course-v1:MITxT+8.EFTx/ is included now

How can this be tested?

dbt build --select marts__combined__products
Then verify this query returns 72 rows
select * from ol_data_lake_production.ol_warehouse_production_YOURNAME_mart.marts__combined__products
where platform='MITx Online'
and from_iso8601_timestamp(enrollment_start_on) <= current_date
and (enrollment_end_on is null or from_iso8601_timestamp(enrollment_end_on) > current_date)
and is_live = true

The build ran clean and the test query results looked good so I'm approving. My main concern with this change is if we change the field to allow non-numeric values like "Free" it's more difficult to do calculations on the list price field. Taking a sum, average, etc. Should this change be made? or maybe should "Free" be 0 instead?

That's a fair point on the price type. Part of this PR is to add the remaining MITx Online courses that have no normalized product price. For these courses, the only place we can get price detail is from CMS but the field is free text. These added courses are not all free courses, e.g. course-v1:MITxT+15.699x+3T2022. In CMS it says $49 as free text but no normalized price as product in 3T2022 run.  Let me ask about the course.

@KatelynGit, I updated the list price to a number, which is the normalized price. I left these courses with no normalized product as null unless there is a need to specify 0 for free courses. Can you take another look? thanks


Migration from Python 2 to 3 introduced instability for this plugin

Android TV

Add-on name: Jiotv
Add-on version: 2.0.0
Kodi version: Kodi 19
Operating system version/name: Android TV Pie

Describe the bug
Kodi v19 introduced migration from Python 2 to 3. Which is why this plugin is not working.
To Reproduce
Steps to reproduce the behavior:
Plugin shown as outdated.
Expected behavior
It should show all the available shows & options.

Duplicate of #107


ecsInstanceRole doesn't have permission to create log stream in CloudWatch

ecsInstanceRole doesn't have CloudWatch permission to create log stream and we get AccessDeniedException exception. This should be a bug and need a fix.
$ python3 05-helloaws/helloaws.py run

Metaflow 2.0.1 executing HelloAWSFlow for user:hehehe
Validating your flow...
    The graph looks good!
Running pylint...
    Pylint not found, so extra checks are disabled.
2019-12-26 14:56:33.531 Workflow starting (run-id 13):
2019-12-26 14:56:33.837 [13/start/64 (pid 38872)] Task is starting.
2019-12-26 14:56:35.333 [13/start/64 (pid 38872)] HelloAWS is starting.
2019-12-26 14:56:35.393 [13/start/64 (pid 38872)]
2019-12-26 14:56:35.393 [13/start/64 (pid 38872)] Using metadata provider: service@https://xxxxx.execute-api.us-west-2.amazonaws.com/api/
2019-12-26 14:56:35.393 [13/start/64 (pid 38872)]
2019-12-26 14:56:35.394 [13/start/64 (pid 38872)] The start step is running locally. Next, the
2019-12-26 14:56:35.394 [13/start/64 (pid 38872)] 'hello' step will run remotely on AWS batch.
2019-12-26 14:56:35.394 [13/start/64 (pid 38872)] If you are running in the Netflix sandbox,
2019-12-26 14:56:35.394 [13/start/64 (pid 38872)] it may take some time to acquire a compute resource.
2019-12-26 14:56:35.973 [13/start/64 (pid 38872)] Task finished successfully.
2019-12-26 14:56:36.627 [13/hello/65 (pid 38877)] Task is starting.
2019-12-26 14:56:37.649 [13/hello/65 (pid 38877)] [9bc62491-2176-42ff-a618-e9f20c82f842] Task is starting (status SUBMITTED)...
2019-12-26 14:56:50.509 [13/hello/65 (pid 38877)] [9bc62491-2176-42ff-a618-e9f20c82f842] Task is starting (status RUNNABLE)...
2019-12-26 14:56:51.584 [13/hello/65 (pid 38877)] [9bc62491-2176-42ff-a618-e9f20c82f842] Task is starting (status STARTING)...
2019-12-26 14:57:13.975 [13/hello/65 (pid 38877)] [9bc62491-2176-42ff-a618-e9f20c82f842] Task is starting (status FAILED)...
2019-12-26 14:57:14.095 [13/hello/65 (pid 38877)] Batch error:
2019-12-26 14:57:14.096 [13/hello/65 (pid 38877)] Task crashed due to CannotStartContainerError: Error response from daemon: failed to initialize logging driver: failed to create Cloudwatch log stream: AccessDeniedException: User: arn:aws:sts::xxxxxxx:assumed-role/ecsInstanceRole/i-0bxxxxx7df17e is not authorized t .This could be a transient error. Use @retry to retry.
2019-12-26 14:57:14.150 [13/hello/65 (pid 38877)]
2019-12-26 14:57:14.543 [13/hello/65 (pid 38877)] Task failed.
2019-12-26 14:57:14.596 [13/hello/65 (pid 38906)] Task is starting (retry).

I can help on the fix once develop team can confirm it's not a misconfiguration issue.

Looks like a configuration issue on your end. Did you follow the directions listed here - https://github.com/Netflix/metaflow-tools/blob/master/aws/cloudformation/README.md#prerequisites


about precision loss

Compared with llama.cpp, does tmac lose precision when running quantized models, or does it give the same results? I am running qwen1.5 4bit（https://huggingface.co/Qwen/Qwen1.5-4B-Chat-GPTQ-Int4） now, and I found that the answers given by the model are sometimes wrong, especially in English. like this:

Yes, but their GPTQ has their groupsize 128
https://huggingface.co/Qwen/Qwen1.5-4B-Chat-GPTQ-Int4/blob/ff03f8a9647d68587c4bc621eeafd61c9df4487b/config.json#L29
While the understanding is, groupsize of 32 would be better.
From the source: https://github.com/ggerganov/llama.cpp/pull/1684

In the existing ggml quantization types we have "type-0" (Q4_0, Q5_0) and "type-1" (Q4_1, Q5_1). In "type-0", weights w are obtained from quants q using w = d * q, where d is the block scale. In "type-1", weights are given by w = d * q + m, where m is the block minimum.

Q4_K_M carries a mixture of these complex components:

GGML_TYPE_Q4_K - "type-1" 4-bit quantization in super-blocks containing 8 blocks, each block having 32 weights. Scales and mins are quantized with 6 bits. This ends up using 4.5 bpw.
GGML_TYPE_Q5_K - "type-1" 5-bit quantization. Same super-block structure as GGML_TYPE_Q4_K resulting in 5.5 bpw
GGML_TYPE_Q6_K - "type-0" 6-bit quantization. Super-blocks with 16 blocks, each block having 16 weights. Scales are quantized with 8 bits. This ends up using 6.5625 bpw

There are several ways to increase the model performance of GPTQ, including using w4g64 instead of w4g128, or doing QAT such as EfficientQAT. Another cause is the quality of prompt engineering. Some models, without correct prompt, can output random results.
From our experience, qwen2 GPTQ w4g128 already performs well enough. However, we are still working on merging latest llama.cpp to support qwen2. Track the process through #46 .

@kaleid-liner @BarfingLemurs thank you very much.


Document how many sockets are created by different grpc::Channel objects

We often get questions related to the number of sockets created by using many grpc::Channel objects.  This is well understood for gRPC when contacting ${service}.googleapis.com (channels that share the same credentials and attributes share the underlying sockets).  I do not understand how this works for google-c2p:///${service}.googleapis.com.  I need to ask and document it somewhere.

Heard from a colleague:

What happens if you call grpc::CreateCustomChannel() twice, with identical credentials and arguments?

It depends on what GRPC_ARG_USE_LOCAL_SUBCHANNEL_POOL is set to:

If false (default), then underlying sockets will be shared)

It true, then underlying sockets will NOT be shared.

Closing, we understand how this works now.


cursor align with text   !!!

Homework

[X] I took the time to write a good, descriptive issue title
[X] I read nativefier --help and API.md.
[X] I checked CATALOG.md for community suggestions & workarounds.
[X] I searched existing issues, open & closed. Yes, my bug is new.
[X] I'm running the latest version.

Nativefier command
nativefier -p linux -a x64 -n  Kibana --tray --single-instance  --ignore-certificate   --icon=/home/yk/图片/apps/kibana.png https://node01:5601/app/dev_tools
Steps to reproduce
build with nativefier
Expected behavior
cursor align with text  like this , for example i use firefox

Actual behavior
cursor does not align with text like this

Debug info
none
Nativefier version
49.0.0
Node.js version
v14.20.0
npm version
6.14.17
OS
ubuntu18.04

Are you sure this works in chrome?

Are you sure this works in chrome?

@BastelPichi yeah, I too suspect it doesn't. With that, closing. Happy to re-open if you confirm the problem is Nativefier-specific and doesn't happen in Chrome. If it does, please provide a repro scenario on a public website.


feat: make components ssr/ssg compatible and add domain hint

I wasn't able to thoroughly test this, but it should work. :)

one minor thing


What do I do with nginx proxy manager?

nginx proxy manager has a numbering that increases the number every time I renew the cert, ex) privkey1.pem, privkey2.pem... In this case, how should I specify the location?

I wrote a helper script for such situations. The script detects where the latest key/cert is located and provides that as an input for synology-cert-deploy.sh in form of environment variables. I'll try to upload it here tomorrow. Hopefully it'll help.
But if you'd like to meantime write your own helper script, all you need to do is to run the following before running synology-cert-deploy.sh:
export SYNO_HELPER_KEY="/path/to/your/privkey.pem"
export SYNO_HELPER_FULLCHAIN="/path/to/your/fullchain.pem"

If your helper script can populate those two environment variables, the synology-cert-deploy.sh script will take it from there.

I just tried it as you suggested and it worked perfectly, thank you so much!

Excellent! Thank you for reporting back the result!


Update the broken links in the Overview section

Opened issue #3393

Deploy preview linked to the page that is being updated: https://deploy-preview-3394--reactjs.netlify.app/docs/perf

Oh and please sign the CLA once the bot mentions it to you. I forgot to wait for it, again :sweat:


GrContext::performDeferredCleanup needs to be called on the IO context.

Base on guidance from @brianosman, simply dropping the reference to an object on a thread with an OpenGL context is not sufficient to actually collect the GL handle. GrContext::performDeferredCleanup must also be called periodically. We already seem to be doing this on the main GPU thread context but not the IO thread context.

This was done in https://github.com/flutter/engine/pull/14265


FlinkResultSet#close will do nothing if all results are fetched from a job

This PR changes the cancellation of a FlinkResultSet.
The JDBC driver will now do nothing if all results have been fetched from the job when cancelling a FlinkResultSet. This helps to improve efficiency and avoid exceptions thrown from the gateway  (in per job mode) for cancelling a job not existed anymore.

LGTM, +1 to merge


Add validation to Gio..objects like GioNode

add validation to the GioNode/GioEdge/etc. objects themselves
maybe a ValidatingGioWriter is not needed.
Every stream of valid/creatable GioObjects should be handled by GioWriter,
delegates to GraphMLWriter -- and the ValidatingGraphmlWriter catches all wrongly nested/ordered elements.

Max: THink about delombokizing


Fail Open Order when mesh client has crashed

If a user goes to place an open order when their mesh client is dead....fail that open order since it will never hit the order book

seeing this - closed


Intellisense doc detail sometimes appears at bottom when there is sufficient horizontal room

On latest master 90bfb284fa032943f0823f90c360529c77e1e214
This happened when I was getting repro steps for https://github.com/Microsoft/vscode/issues/27868, there is plenty of room for the horizontal layout as in that issue.

Hitting ctrl+space twice will refresh the layout to the correct spot:

Happened again on Insiders:

@Tyriar Did you happen to be in a smaller VS Code window and then resize ?

Not sure, I have seen it a few times though and I rarely resize when I'm on my mac.

Can't reproduce anymore. I didn't really have reliable steps for this one so I'll ping you if I see it again.


TreeView - Tooltip markdown closing on pressing CTRL

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version: 1.70.1
OS Version: Windows_NT x64 10.0.19043

From some versions until now, I noticed that the copy and paste behavior of the TreeView component's markdown tooltips stopped working. Simply when I click on CTRL the tooltip disappears, and does not perform the action.
In the GIF below you can also see issue #158711 occurring sporadically when hovering over the item.

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.70.2. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

Yes, problem persists in 1.70.2.

@Tyriar does this ring any bells, or should I investigate?

This seems to be a regression. Adding to this iteration, @alexr00 if you have any time to look into this it would be appreciated as I'll be pretty busy this week.

thanks for fix!

Verified on mac - not sure if this was windows specific

The issue was not Windows specific, verifying on mac is good.


feat: adding clock

Motivation
Showing the clock so we can see current local time.
Changes
Adding clock to the bottom left of the page.
See screenshot below:

Related
none
Additional Comments
none

@all-contributors please add @dkhd for code and docs


Ability to pass a custom Browser executable path to playwright for pageShots

Mode
Page screenshots
Feature description
Hi! First, lost-pixel is very cool, thank you a lot for building it!
In my project, I've specific versions of browsers (Chrome, Chromium, Firefox) already installed in a custom location.
I can use the PLAYWRIGHT_BROWSERS_PATH environment variable to point Playwright to that as the root, but it still looks for a pre-defined version of Chromium, leading to the following error:

Prepared 1 pages for screenshots on chromium
❌ browserType.launch: Executable doesn't exist at /var/tmp/.browsers-cache/chromium-1091/chrome-mac/Chromium.app/Contents/MacOS/Chromium

Note, that I don't want to install yet another version of Chrome/Chromium.
Would it be possible to add an option to the lost-pixel configuration file, where you can specify the version or (even better in my case) the full path to the executable binary? You can do that by passing an executablePath prop  to the launch method here.
More generically, you could just accept a browserLaunchOptions object in the configuration file and pass that to the launch command.
Thanks in advance!

this sounds like a great idea in general. we currently don't allow custom versions of chromium indeed but i would be open to the contribution to make it flexible.
from the top of my head i can't see anything that would prevent the custom version but there might be some limitations overall that are unforeseen. need to try it out!

Yeah, just like Playwright's documentation says, this is something that users should use at their own risk:

In my case, I'm already using a specific version of Chromium, with playwright, to perform traditional end-to-end testing on the application so I know it would work for my use case.

do you mind contributing this? would love to merge it if it's flexible enough not to touch the general logic.

@d-ivashchuk I've pushed a PR that implements this. I tried to follow the contributing guidelines. Let me know if it looks ok: https://github.com/lost-pixel/lost-pixel/issues/402

Released in https://github.com/lost-pixel/lost-pixel/releases/tag/v3.19.0


Add method for plugins to export app keys

I'm not sure whether we should trust plugins to generate their own app keys (probably?), but since some account types aren't even key pairs, we might want to also provide some default key generation.
Relevant code here.
To allow total interacting between plugins even with custom accounts, this is a requirement, so it should be at least dismissed with good reason before production, so marking as prod-blocker.

Part of some future app key epic that we will track elsewhere through other means.


Wallet db not properly unlocked after withdraw

Taker deamon reports problem syncing wallet after withdraw. It seems the database was not unlocked properly.
2021-11-12 04:40:57  WARN Failed to sync wallet: Failed to sync wallet: Rusqlite(SqliteFailure(Error { code: CannotOpen, extended_code: 14 }, Some("unable to open database file")))
2021-11-12 04:41:08  WARN Failed to sync wallet: Failed to sync wallet: Rusqlite(SqliteFailure(Error { code: CannotOpen, extended_code: 14 }, Some("unable to open database file")))
2021-11-12 04:41:19  WARN Failed to sync wallet: Failed to sync wallet: Rusqlite(SqliteFailure(Error { code: CannotOpen, extended_code: 14 }, Some("unable to open database file")))
2021-11-12 04:41:30  WARN Failed to sync wallet: Failed to sync wallet: Rusqlite(SqliteFailure(Error { code: CannotOpen, extended_code: 14 }, Some("unable to open database file")))
2021-11-12 04:41:40  WARN Failed to sync wallet: Failed to sync wallet: Rusqlite(SqliteFailure(Error { code: CannotOpen, extended_code: 14 }, Some("unable to open database file")))
2021-11-12 04:41:51  WARN Failed to sync wallet: Failed to sync wallet: Rusqlite(SqliteFailure(Error { code: CannotOpen, extended_code: 14 }, Some("unable to open database file")))
2021-11-12 04:42:02  WARN Failed to sync wallet: Failed to sync wallet: Rusqlite(SqliteFailure(Error { code: CannotOpen, extended_code: 14 }, Some("unable to open database file")))

Please re-open if still an issue.


chore: update instructions for some tools promotion usage

fixes https://github.com/asyncapi/website/issues/1854

@akshatnema current version is also highlighting weird, for me separate issue from this PR


Expose InteropObservable and InteropSubscribable

@Andarist Can you quickly check if any other types I marked as @internal should really be @hidden? Or is it most of them?

I only identified MachineImplementationsSimplified as one extra type that was erroneously marked as @internal

Changes applied; good to go?


Xcode8 + Carthage + Agrume 3.0

** CLEAN FAILED **
The following build commands failed:
Check dependencies
(1 failure)
** BUILD FAILED **
The following build commands failed:
Check dependencies
(1 failure)
A shell task (/usr/bin/xcrun xcodebuild -workspace /Users/omarcafini/Documents/Code/Test/Carthage/Checkouts/Agrume/Agrume.xcworkspace -scheme Agrume -configuration Release -sdk iphoneos ONLY_ACTIVE_ARCH=NO BITCODE_GENERATION_MODE=bitcode CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY= CARTHAGE=YES clean build) failed with exit code 65:
** CLEAN FAILED **

Just briefly looked at this: seems like Carthage is building with the incorrect version of Swift here (i.e. not 3.0). And I see support for a --toolchain flag was added. But getting rather late here – I can take a closer look tomorrow

I've checked but seems not work...

Last test I did, with ore into for you @JanGorman I hope can help you:
The following build commands failed:
CompileSwift normal arm64 /Users/omarcafini/Documents/Code/ksenia-user/Carthage/Checkouts/Agrume/AgrumeTests/AgrumeServiceLocatorTests.swift
CompileSwiftSources normal arm64 com.apple.xcode.tools.swift.compiler
(2 failures)
/Users/omarcafini/Documents/Code/ksenia-user/Carthage/Checkouts/Agrume/AgrumeTests/AgrumeServiceLocatorTests.swift:6:18: error: module 'Agrume' was not compiled for testing
A shell task (/usr/bin/xcrun xcodebuild -workspace /Users/omarcafini/Documents/Code/ksenia-user/Carthage/Checkouts/Agrume/Agrume.xcworkspace -scheme Agrume -configuration Release -sdk iphoneos ONLY_ACTIVE_ARCH=NO BITCODE_GENERATION_MODE=bitcode CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY= CARTHAGE=YES clean build) failed with exit code 65:
** BUILD FAILED **
The following build commands failed:
CompileSwift normal arm64 /Users/omarcafini/Documents/Code/ksenia-user/Carthage/Checkouts/Agrume/AgrumeTests/AgrumeServiceLocatorTests.swift
CompileSwiftSources normal arm64 com.apple.xcode.tools.swift.compiler
(2 failures)

Can you just verify please that it's building with the correct version of Xcode: What does xcode-select -p point to? Previously I had Xcode GM in a separate folder which messed it up. After that it was just a matter of setting a flag to allow building for testing: fixed with 3.0.1.

It's ok with the last commit.
Thank you @JanGorman


Re-enable corefx unit tests in master

As part of updating the master branch to 5.0, corefx unit tests were disabled until the entire product is built. This should be re-enabled once the master branch builds through core-sdk.

@dseefeld You mentioned you're still working on this, or did I misunderstand something? Should it be reopened?

[Triage] CoreFx tests are not run as part of source-build anymore.  The Unified Build feature in .NET 8.0 and 9.0 will enable running repo unit tests against source-build.


False negatives (jwtdecode, xzing) that do get found with other tool

Describe the bug
The tool does not find two libs that still use the legacy support libs.
To Reproduce
Steps to reproduce the behavior:

Eliminate legacy android support usages as per bye-bye-jetifier
Tool says it's ok and jetifier can be disabled
Builds fail (duplicate classes, android.support and androidx class paths being there)
Check with other tool https://github.com/plnice/can-i-drop-jetifier and that tool finds the two remaining legacy libraries

Expected behavior
Both libraries should be found:

    implementation 'me.dm7.barcodescanner:zxing:1.9.13'
    implementation "com.auth0.android:jwtdecode:1.4.0"

Both are direct dependencies of the single :app module of the project.
Screenshots
See additional context
Additional context
:canISayByeByeJetifier output:
> Task :canISayByeByeJetifier

=========================================
Project: dcs-app-development-android
=========================================
 * No legacy android support usages found

=========================================
Project: app
=========================================
 * No legacy android support usages found

=========================================
Project: appcenter
=========================================
 * No legacy android support usages found

=========================================
Project: libaddressinput
=========================================
 * No legacy android support usages found

=========================================
Project: picasso-2.71828-jetified
=========================================
 * No legacy android support usages found

=====================================================================================
* No dependencies with legacy android support usages! You can say Bye Bye Jetifier. *
=====================================================================================

:canIDropJetifier output:
> Task :canIDropJetifier
========================================
Project app
========================================

Cannot drop Jetifier due to following module dependencies:

* app (module)

Cannot drop Jetifier due to following external dependencies:

* com.auth0.android:jwtdecode:1.4.0

* me.dm7.barcodescanner:zxing:1.9.13

Ah I see you are already working on this, I wanted to expand on this as I analyzed it a bit further.
me.dm7.barcodescanner:zxing:1.9.13 requires me.dm7.barcodescanner:core:1.9.13, so that one does need to be transformed.
\--- me.dm7.barcodescanner:zxing:1.9.13       <-- OK, AndroidX ready
     +--- me.dm7.barcodescanner:core:1.9.13  <-- Not OK, legacy android stuff
.....

Hi.  Thanks for reporting this issue. We are working on a fix. The problem is when analyzing transitive dependencies. We expect to release a v1.1.1 with the fix soon.

v1.1.1 released with this fix.

Released v1.1.2 with the fix


fn: size restricted tmpfs /tmp and read-only / support

*) read-only Root Fs Support
*) removed CPUShares from docker API. This was unused.
*) docker.Prepare() refactoring
*) added docker.configureTmpFs() for size limited tmpfs on /tmp
*) tmpfs size support in routes and resource tracker
*) fix fn-test-utils to handle sparse files better in create file

Is it feasible to to add an e2e test to witness the FS limit here?

I have some minor concerns about the impact of making this per-route configurable  - but understand that while this is necessarily tmpfs that this make sense.

seems like a good use case for annotations to configure ?

Annotations sounds good. Then operators could choose to put this as app or route based setting.

@rdallman FYI, @zootalures has some reservations on using annotations for this. Leaving this PR as is, I think per route config is OK and gives enough flexibility to operators.

Are there any corresponding changes that need to be made to the fn-api or cli to support this?  Relatedly: should we enable by default and instead use the environment to allow users to disable?

I'd say we leave it disabled by default. This is the least disruptive for open-source users, cli, etc.


How to limit number of module child's that can be created

This is not an issue.
When creating a module with child modules (for example, accordion), is there any way to limit number of childs that can be created ?
I searched but not found something like that in Divi source code.
Thanks.

QA Checklist
Reporter

[ ] Helpful title used

Helpful title format: Scope(s) :: One Sentence To Describe The Issue
Example: VB :: Floating Toolbar :: Jumps To Top Of Page

[ ] Detailed description

Description should usually be 150+ characters.

[ ] Steps to reproduce included
[ ] Support Ticket URL included
[ ] Image and/or gif

Developer

[ ] Steps to reproduce proven solved
[ ] Test included and coverage acceptable and all Tests passing?
[ ] PR description has layman's description of problem and solution and "Areas Affected" listed/explained?
[ ] PR branch includes latest commits from master branch (at the time of checking)?
[ ] Estimated points on issue
[ ] Proper code documentation and conventions?
[ ] Proper RTL appearance
[ ] i18n used if applicable
[ ] Ajax/Form used? Nonce used? Perms checked? All user input sanitized and validated? Intentional unsanitized/unescaped functions used?
[ ] Database saved/updated? Data sanitized and validated?
[ ] Variable output properly escaped and validated?

Peer Review

[ ] PR branch includes latest commits from master branch (at the time of checking)?
[ ] Steps to reproduce proven solved
[ ] Affected areas are tested and ok
[ ] Proper code documentation and conventions
[ ] Proper RTL appearance
[ ] i18n used if applicable
[ ] Test(s) included and coverage acceptable
[ ] Ajax/Form used? Nonce used? Perms checked? All user input sanitized and validated? Intentional unsanitized/unescaped functions used?
[ ] Database saved/updated? Data sanitized and validated?
[ ] Variable output properly escaped and validated?

Quality Assurance

[ ] All tests passed on CircleCI.
[ ] Steps to reproduce passed, the fix works.
[ ] No errors in console or output
[ ] Affected areas are tested and ok
[ ] The fix does not change a customer's website in any surprising or unintended way

[ ] If Divi's design is adjusted, settings are migrated gracefully and invisibly

Design Review

[ ] UI is to spec
[ ] UX is to spec
[ ] Design is to spec
[ ] No surprising visual changes to a customer's website will be experienced after updating

[ ] Any/all visual changes are migrated gracefully

Dev Review

[ ] Test(s) included and coverage acceptable
[ ] Ajax/Form used? Nonce used? Perms checked? All user input sanitized and validated? Intentional unsanitized/unescaped functions used?
[ ] Database saved/updated? Data sanitized and validated?
[ ] Variable output properly escaped and validated?
[ ] i18n used if applicable
[ ] Implementation acceptable, DRY, Scaleable, future safe
[ ] Best practices used, cleverness and grokage, ES6 use, etc.

I am looking for this as well, is there a possibility to limit the number of child items a user can create? Min & Max both.


Error opening large Office files

Hello,
i've created a 115 mb pptx file (nextcloud plugin -> onlyoffice), and now i cant open it anymore.
Error:

Apache2 ini (nextcloud server):
max_execution_time | 600 | 600
max_file_uploads | 50 | 50
max_input_nesting_level | 64 | 64
max_input_time | 60 | 60
max_input_vars | 1000 | 1000
memory_limit | 512M | 1G
post_max_size | 1G | 1024M
BR
René

Hello @ExaconAT,
Please specify if the problem occurs only with this particular file or with all files.
Send us also the screenshot of ONLYOFFICE address settings in NextCloud administrator section and check logging section for any errors.

I think this is a configuration problem in json on the oo server, i can remember that theres a max value for files.


Chained selection not working in admin

class Continent(models.Model):
continent=models.CharField(max_length=20)
class Country(models.Model):
country= models.CharField(max_length=20)
continent=ChainedForeignKey(Continent,chained_field="continent", chained_model_field="continent")
class State(models.Model):
state=models.CharField(max_length=20)
country = ChainedForeignKey(Country,chained_field="country", chained_model_field="country")
class City(models.Model):
city=models.CharField(max_length=20)
state=ChainedForeignKey(State,chained_field="state", chained_model_field="state")
class District(models.Model):
district = models.CharField(max_length=20)
city=ChainedForeignKey(City,chained_field="city", chained_model_field="city")

Hello.
Above is my code using your app. I now have 2 issues

When I add country in admin. I can't assign  the continent to each country because the continent is not in the list

If I select United States, all states don't show in the dropdown list. Can you take a look?

THanks from Canada

Don't works yet, could you solve this issue?

Closing since it's been 6 years. Reopen if you are still having issues.


Use direct state access in OpenGL Buffer classes

The reason to use glCreateBuffers is that it actually creates the buffers rather than just giving unused names and creating them when they are first bound. This way, the direct state access functions (GL_ARB_direct_state_access) can preserve the currently bound buffer without needing to restore it later or check if the buffer has been previously bound. If the buffer is bound immediately after the call to glCreateBuffers, it will require OpenGL 4.5 for no good purpose.

I see hidden binding going on in the Hazel master branch, eg. in AddIndexBuffer and AddVertexBuffer in OpenGLVertexArray. If the switch to DSA is made, the hidden binding can be avoided. DSA simply makes more sense for OOP-style classes.
I strongly dislike the idea of having hidden driver overhead of unnecessary binding/unbinding/etc.. inside certain OpenGL calls in a game engine.
Most modern devices support OpenGL 4.5, and since Hazel is currently taking the "get stuff working, add other platform implementations later" road, creating a fallback older (non-DSA) OpenGL implementation can be done later in the future if support for those devices is desired.

Most modern devices support OpenGL 4.3, and since Hazel is currently taking the "get stuff working, add other platform implementations later" road, creating a fallback older (non-DSA) OpenGL implementation can be done later in the future if support for those devices is desired.

In the "get stuff working, add other platform implementations later" approach I would say revert to older implementation as it will work on more devices. But TheCherno also stated that he only wanted to support OpenGL 4.5 (not lower).

I strongly dislike the idea of having hidden driver overhead of unnecessary binding/unbinding/etc.. inside certain OpenGL calls in a game engine.

TheCherno said he wanted to focus on performance to get as close to "real time" as possible. In that case I am also supporting to not have the extra overhead in the calls. But the 'line' between renderer and renderAPI must be taken somewhere. This is more up to TheCherno himself to decide.

I'm working on updating it. I'll finish when I have time.

Done. It works fine with direct state access now. Textures were already using it.

The conflicting files just required to pull the master branch into this PR


add option for showing search bar at bottom

I would like the option of displaying the search bar below the application list instead of above it. It's much easier to tap the search box with a thumb when it's below the apps list than when it is above it when using this launcher on a phone.

+1

Submitting too. Nice feature.

+1


Provide instructions for how to view telemetry data sent to Salesforce

It has recently come to our attention that a bad actor plugin, taking queues from sfdx, sends local environment variables to their own telemetry server. This is a security risk.
I need to audit the sfdx telemetry data to verify that it also doesn't send any env variables. Please provide instructions on how to view all telemetry events that sfdx logs.

telemetry plugin is here: https://github.com/salesforcecli/plugin-telemetry
which uses this library: https://github.com/forcedotcom/telemetry
You can opt out of our telemetry https://developer.salesforce.com/docs/atlas.en-us.sfdx_setup.meta/sfdx_setup/sfdx_dev_cli_telemetry.htm

That's closed source. We have disabled telemetry but need to confirm historical use. Can you both show how to log what's sent to salesforce, and also confirm that no environment variables of any kind are sent as part of telemetry, which would mean you're potentially vacuuming up secrets from sfdx users by default?

https://github.com/forcedotcom/telemetry was supposed to be a public repo.  It's public now.
Previous iterations are here if you want to review historical behavior: https://github.com/forcedotcom/cli-packages/tree/main/packages/telemetry

and also confirm that no environment variables of any kind are sent as part of telemetry

Plugin-telemetry sends some environment variables.  You can review that behavior here:
https://github.com/salesforcecli/plugin-telemetry/blob/58a4206fc6537e26dc2e390100ffa3b3fba52635/src/commandExecution.ts
The readme for https://github.com/salesforcecli/plugin-telemetry has example code of how to set up telemetry debugging


[BUG] PiVPN Can't connect via Android Client (Testing Branch) - Not Listening Error

In raising this issue, I confirm the following:
{please fill the checkboxes, e.g: [X]}

[X] I have read and understood the contributors guide.
[X] The issue I am reporting can be replicated.
[X] The issue I am reporting can be is directly related to the pivpn installer script.
[X] The issue I am reporting isn't a duplicate (see FAQs, closed issues, and open issues).

Describe the bug
Working from clean installation (Testing Branch) of Raspbian Buster Lite on Raspberry Pi 3. Install goes OK, I choose OpenVPN. Able to add client. Import the key into Android OpenVPN client and it can't connect. I'm using NoIP
To Reproduce
Steps to reproduce the behavior:

Install testing branch on clean installation
Add client
Copy client to android phone and import into OpenVPN
Can't connect

Smartphone (please complete the following information):

VPN Protocol UDP
Device: Moto G6
OS: Android
8

Additional context
When I run pivpn debug I get the following message:
::::            Self check               ::::
:: [OK] IP forwarding is enabled
:: [OK] Iptables MASQUERADE rule set
:: [OK] OpenVPN is running
:: [OK] OpenVPN is enabled (it will automatically start on reboot)
:: [ERR] OpenVPN is not listening, try to restart now? [Y/n]

If I choose 'Y' I get this:
pi@raspberrypi:~ $ pivpn debug
::: Generating Debug Output
::::            PiVPN debug              ::::
=============================================
::::            Latest commit            ::::
commit a9f5e7346fa596f021bcf8a043b749dc14b86986
Author: Orazio<EMAIL_ADDRESS>Date:   Tue Dec 31 12:28:26 2019 +0100

    Revert to more portable commands
=============================================
::::        Installation settings        ::::
=============================================
::::    setupVars file shown below       ::::
PLAT=Raspbian
OSCN=buster
USING_UFW=0
IPv4dev=eth0
IPv4addr=<IP_ADDRESS>
IPv4gw=<IP_ADDRESS>
install_user=pi
install_home=/home/pi
VPN=openvpn
pivpnPROTO=udp
pivpnPORT=1194
pivpnDNS1=<IP_ADDRESS>
pivpnDNS2=<IP_ADDRESS>
pivpnSEARCHDOMAIN=
pivpnHOST=REDACTED
pivpnENCRYPT=2048
DOWNLOAD_DH_PARAM=0
INPUT_CHAIN_EDITED=0
FORWARD_CHAIN_EDITED=0
UNATTUPG=1
TO_INSTALL=(git dnsutils iptables-persistent openvpn grepcidr expect unattended-upgrades)
HELP_SHOWN=1
=============================================
::::  Server configuration shown below   ::::
dev tun
proto udp
port 1194
ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/raspberrypi_0fd30448-bae4-4a6f-8d6f-797f491f8222.crt
key /etc/openvpn/easy-rsa/pki/private/raspberrypi_0fd30448-bae4-4a6f-8d6f-797f491f8222.key
dh /etc/openvpn/easy-rsa/pki/dh2048.pem
topology subnet
server <IP_ADDRESS> <IP_ADDRESS>
# Set your primary domain name server address for clients
push "dhcp-option DNS <IP_ADDRESS>"
push "dhcp-option DNS <IP_ADDRESS>"
# Prevent DNS leaks on Windows
push "block-outside-dns"
# Override the Client default gateway by using <IP_ADDRESS>/1 and
# <IP_ADDRESS>/1 rather than <IP_ADDRESS>/0. This has the benefit of
# overriding but not wiping out the original default gateway.
push "redirect-gateway def1"
client-to-client
keepalive 15 120
remote-cert-tls client
tls-version-min 1.2
tls-auth /etc/openvpn/easy-rsa/pki/ta.key 0
cipher AES-256-CBC
auth SHA256
user openvpn
group openvpn
persist-key
persist-tun
crl-verify /etc/openvpn/crl.pem
status /var/log/openvpn-status.log 20
status-version 3
syslog
verb 3
#DuplicateCNs allow access control on a less-granular, per user basis.
#Remove # if you will manage access by user instead of device.
#duplicate-cn
# Generated for use by PiVPN.io
=============================================
::::  Client template file shown below   ::::
client
dev tun
proto udp
remote REDACTED 1194
resolv-retry infinite
nobind
key-direction 1
remote-cert-tls server
tls-version-min 1.2
verify-x509-name raspberrypi_0fd30448-bae4-4a6f-8d6f-797f491f8222 name
cipher AES-256-CBC
auth SHA256
auth-nocache
verb 3
=============================================
::::    Recursive list of files in       ::::
::: /etc/openvpn/easy-rsa/pki shows below :::
/etc/openvpn/easy-rsa/pki/:
ca.crt
crl.pem
Default.txt
dh.pem
extensions.temp
index.txt
index.txt.attr
index.txt.attr.old
index.txt.old
issued
openssl-easyrsa.cnf
OpenVPN-MotoG6.ovpn
private
renewed
revoked
safessl-easyrsa.cnf
serial
serial.old
ta.key

/etc/openvpn/easy-rsa/pki/issued:
OpenVPN-MotoG6.crt
raspberrypi_0fd30448-bae4-4a6f-8d6f-797f491f8222.crt

/etc/openvpn/easy-rsa/pki/private:
ca.key
OpenVPN-MotoG6.key
raspberrypi_0fd30448-bae4-4a6f-8d6f-797f491f8222.key

/etc/openvpn/easy-rsa/pki/renewed:
private_by_serial
reqs_by_serial

/etc/openvpn/easy-rsa/pki/renewed/private_by_serial:

/etc/openvpn/easy-rsa/pki/renewed/reqs_by_serial:

/etc/openvpn/easy-rsa/pki/revoked:
private_by_serial
reqs_by_serial

/etc/openvpn/easy-rsa/pki/revoked/private_by_serial:

/etc/openvpn/easy-rsa/pki/revoked/reqs_by_serial:
=============================================
::::            Self check               ::::
:: [OK] IP forwarding is enabled
:: [OK] Iptables MASQUERADE rule set
:: [OK] OpenVPN is running
:: [OK] OpenVPN is enabled (it will automatically start on reboot)
:: [ERR] OpenVPN is not listening, try to restart now? [Y/n] Y
Done
[INFO] Run pivpn -d again to see if we detect issues
=============================================
::::      Snippet of the server log      ::::
Jan  2 17:13:31 raspberrypi ovpn-server[1716]: Options error: Please correct these errors.
Jan  2 17:13:31 raspberrypi ovpn-server[1716]: Use --help for more information.
Jan  2 17:13:37 raspberrypi ovpn-server[1719]: Options error: --dh fails with '/etc/openvpn/easy-rsa/pki/dh2048.pem': No such file or directory (errno=2)
Jan  2 17:13:37 raspberrypi ovpn-server[1719]: Options error: Please correct these errors.
Jan  2 17:13:37 raspberrypi ovpn-server[1719]: Use --help for more information.
Jan  2 17:13:42 raspberrypi ovpn-server[1758]: Options error: --dh fails with '/etc/openvpn/easy-rsa/pki/dh2048.pem': No such file or directory (errno=2)
Jan  2 17:13:42 raspberrypi ovpn-server[1758]: Options error: Please correct these errors.
Jan  2 17:13:42 raspberrypi ovpn-server[1758]: Use --help for more information.
Jan  2 17:13:47 raspberrypi ovpn-server[1770]: Options error: --dh fails with '/etc/openvpn/easy-rsa/pki/dh2048.pem': No such file or directory (errno=2)
Jan  2 17:13:47 raspberrypi ovpn-server[1770]: Options error: Please correct these errors.
Jan  2 17:13:47 raspberrypi ovpn-server[1770]: Use --help for more information.
Jan  2 17:13:52 raspberrypi ovpn-server[1773]: Options error: --dh fails with '/etc/openvpn/easy-rsa/pki/dh2048.pem': No such file or directory (errno=2)
Jan  2 17:13:52 raspberrypi ovpn-server[1773]: Options error: Please correct these errors.
Jan  2 17:13:52 raspberrypi ovpn-server[1773]: Use --help for more information.
Jan  2 17:13:58 raspberrypi ovpn-server[1777]: Options error: --dh fails with '/etc/openvpn/easy-rsa/pki/dh2048.pem': No such file or directory (errno=2)
Jan  2 17:13:58 raspberrypi ovpn-server[1777]: Options error: Please correct these errors.
Jan  2 17:13:58 raspberrypi ovpn-server[1777]: Use --help for more information.
Jan  2 17:14:03 raspberrypi ovpn-server[1803]: Options error: --dh fails with '/etc/openvpn/easy-rsa/pki/dh2048.pem': No such file or directory (errno=2)
Jan  2 17:14:03 raspberrypi ovpn-server[1803]: Options error: Please correct these errors.
Jan  2 17:14:03 raspberrypi ovpn-server[1803]: Use --help for more information.
=============================================
::::            Debug complete           ::::
:::
::: Debug output completed above.
::: Copy saved to /tmp/debug.txt
:::
pi@raspberrypi:~ $

This is the full output:
pi@raspberrypi:~ $ pivpn debug
::: Generating Debug Output
::::            PiVPN debug              ::::
=============================================
::::            Latest commit            ::::
commit a9f5e7346fa596f021bcf8a043b749dc14b86986
Author: Orazio<EMAIL_ADDRESS>Date:   Tue Dec 31 12:28:26 2019 +0100

    Revert to more portable commands
=============================================
::::        Installation settings        ::::
=============================================
::::    setupVars file shown below       ::::
PLAT=Raspbian
OSCN=buster
USING_UFW=0
IPv4dev=eth0
IPv4addr=<IP_ADDRESS>
IPv4gw=<IP_ADDRESS>
install_user=pi
install_home=/home/pi
VPN=openvpn
pivpnPROTO=udp
pivpnPORT=1194
pivpnDNS1=<IP_ADDRESS>
pivpnDNS2=<IP_ADDRESS>
pivpnSEARCHDOMAIN=
pivpnHOST=REDACTED
pivpnENCRYPT=2048
DOWNLOAD_DH_PARAM=0
INPUT_CHAIN_EDITED=0
FORWARD_CHAIN_EDITED=0
UNATTUPG=1
TO_INSTALL=(git dnsutils iptables-persistent openvpn grepcidr expect unattended-upgrades)
HELP_SHOWN=1
=============================================
::::  Server configuration shown below   ::::
dev tun
proto udp
port 1194
ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/raspberrypi_0fd30448-bae4-4a6f-8d6f-797f491f8222.crt
key /etc/openvpn/easy-rsa/pki/private/raspberrypi_0fd30448-bae4-4a6f-8d6f-797f491f8222.key
dh /etc/openvpn/easy-rsa/pki/dh2048.pem
topology subnet
server <IP_ADDRESS> <IP_ADDRESS>
# Set your primary domain name server address for clients
push "dhcp-option DNS <IP_ADDRESS>"
push "dhcp-option DNS <IP_ADDRESS>"
# Prevent DNS leaks on Windows
push "block-outside-dns"
# Override the Client default gateway by using <IP_ADDRESS>/1 and
# <IP_ADDRESS>/1 rather than <IP_ADDRESS>/0. This has the benefit of
# overriding but not wiping out the original default gateway.
push "redirect-gateway def1"
client-to-client
keepalive 15 120
remote-cert-tls client
tls-version-min 1.2
tls-auth /etc/openvpn/easy-rsa/pki/ta.key 0
cipher AES-256-CBC
auth SHA256
user openvpn
group openvpn
persist-key
persist-tun
crl-verify /etc/openvpn/crl.pem
status /var/log/openvpn-status.log 20
status-version 3
syslog
verb 3
#DuplicateCNs allow access control on a less-granular, per user basis.
#Remove # if you will manage access by user instead of device.
#duplicate-cn
# Generated for use by PiVPN.io
=============================================
::::  Client template file shown below   ::::
client
dev tun
proto udp
remote REDACTED 1194
resolv-retry infinite
nobind
key-direction 1
remote-cert-tls server
tls-version-min 1.2
verify-x509-name raspberrypi_0fd30448-bae4-4a6f-8d6f-797f491f8222 name
cipher AES-256-CBC
auth SHA256
auth-nocache
verb 3
=============================================
::::    Recursive list of files in       ::::
::: /etc/openvpn/easy-rsa/pki shows below :::
/etc/openvpn/easy-rsa/pki/:
ca.crt
crl.pem
Default.txt
dh.pem
extensions.temp
index.txt
index.txt.attr
index.txt.attr.old
index.txt.old
issued
openssl-easyrsa.cnf
OpenVPN-MotoG6.ovpn
private
renewed
revoked
safessl-easyrsa.cnf
serial
serial.old
ta.key

/etc/openvpn/easy-rsa/pki/issued:
OpenVPN-MotoG6.crt
raspberrypi_0fd30448-bae4-4a6f-8d6f-797f491f8222.crt

/etc/openvpn/easy-rsa/pki/private:
ca.key
OpenVPN-MotoG6.key
raspberrypi_0fd30448-bae4-4a6f-8d6f-797f491f8222.key

/etc/openvpn/easy-rsa/pki/renewed:
private_by_serial
reqs_by_serial

/etc/openvpn/easy-rsa/pki/renewed/private_by_serial:

/etc/openvpn/easy-rsa/pki/renewed/reqs_by_serial:

/etc/openvpn/easy-rsa/pki/revoked:
private_by_serial
reqs_by_serial

/etc/openvpn/easy-rsa/pki/revoked/private_by_serial:

/etc/openvpn/easy-rsa/pki/revoked/reqs_by_serial:
=============================================
::::            Self check               ::::
:: [OK] IP forwarding is enabled
:: [OK] Iptables MASQUERADE rule set
:: [OK] OpenVPN is running
:: [OK] OpenVPN is enabled (it will automatically start on reboot)
:: [ERR] OpenVPN is not listening, try to restart now? [Y/n]

Solved here, thanks: https://github.com/pivpn/pivpn/commit/ef6e84419e6e7e0e10937c42c0ff8210d42a4a3d
You can fix your installation with:
sudo -s
cd /etc/openvpn/easy-rsa/pki/
mv dh.pem dh2048.pem
systemctl restart openvpn
exit

Thanks for replying so quickly.  That seems to have fixed the debug, but it still won't connect.  I will try switching off everything and rebooting, and will report back.  Thank you.
::: Generating Debug Output
::::            PiVPN debug              ::::
=============================================
::::            Latest commit            ::::
commit a9f5e7346fa596f021bcf8a043b749dc14b86986
Author: Orazio<EMAIL_ADDRESS>Date:   Tue Dec 31 12:28:26 2019 +0100

    Revert to more portable commands
=============================================
::::        Installation settings        ::::
=============================================
::::    setupVars file shown below       ::::
PLAT=Raspbian
OSCN=buster
USING_UFW=0
IPv4dev=eth0
IPv4addr=<IP_ADDRESS>
IPv4gw=<IP_ADDRESS>
install_user=pi
install_home=/home/pi
VPN=openvpn
pivpnPROTO=udp
pivpnPORT=1194
pivpnDNS1=<IP_ADDRESS>
pivpnDNS2=<IP_ADDRESS>
pivpnSEARCHDOMAIN=
pivpnHOST=REDACTED
pivpnENCRYPT=2048
DOWNLOAD_DH_PARAM=0
INPUT_CHAIN_EDITED=0
FORWARD_CHAIN_EDITED=0
UNATTUPG=1
TO_INSTALL=(git dnsutils iptables-persistent openvpn grepcidr expect unattended-upgrades)
HELP_SHOWN=1
=============================================
::::  Server configuration shown below   ::::
dev tun
proto udp
port 1194
ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/raspberrypi_0fd30448-bae4-4a6f-8d6f-797f491f8222.crt
key /etc/openvpn/easy-rsa/pki/private/raspberrypi_0fd30448-bae4-4a6f-8d6f-797f491f8222.key
dh /etc/openvpn/easy-rsa/pki/dh2048.pem
topology subnet
server <IP_ADDRESS> <IP_ADDRESS>
# Set your primary domain name server address for clients
push "dhcp-option DNS <IP_ADDRESS>"
push "dhcp-option DNS <IP_ADDRESS>"
# Prevent DNS leaks on Windows
push "block-outside-dns"
# Override the Client default gateway by using <IP_ADDRESS>/1 and
# <IP_ADDRESS>/1 rather than <IP_ADDRESS>/0. This has the benefit of
# overriding but not wiping out the original default gateway.
push "redirect-gateway def1"
client-to-client
keepalive 15 120
remote-cert-tls client
tls-version-min 1.2
tls-auth /etc/openvpn/easy-rsa/pki/ta.key 0
cipher AES-256-CBC
auth SHA256
user openvpn
group openvpn
persist-key
persist-tun
crl-verify /etc/openvpn/crl.pem
status /var/log/openvpn-status.log 20
status-version 3
syslog
verb 3
#DuplicateCNs allow access control on a less-granular, per user basis.
#Remove # if you will manage access by user instead of device.
#duplicate-cn
# Generated for use by PiVPN.io
=============================================
::::  Client template file shown below   ::::
client
dev tun
proto udp
remote REDACTED 1194
resolv-retry infinite
nobind
key-direction 1
remote-cert-tls server
tls-version-min 1.2
verify-x509-name raspberrypi_0fd30448-bae4-4a6f-8d6f-797f491f8222 name
cipher AES-256-CBC
auth SHA256
auth-nocache
verb 3
=============================================
::::    Recursive list of files in       ::::
::: /etc/openvpn/easy-rsa/pki shows below :::
/etc/openvpn/easy-rsa/pki/:
ca.crt
crl.pem
Default.txt
dh2048.pem
extensions.temp
index.txt
index.txt.attr
index.txt.attr.old
index.txt.old
issued
openssl-easyrsa.cnf
OpenVPN-MotoG6.ovpn
private
renewed
revoked
safessl-easyrsa.cnf
serial
serial.old
ta.key

/etc/openvpn/easy-rsa/pki/issued:
OpenVPN-MotoG6.crt
raspberrypi_0fd30448-bae4-4a6f-8d6f-797f491f8222.crt

/etc/openvpn/easy-rsa/pki/private:
ca.key
OpenVPN-MotoG6.key
raspberrypi_0fd30448-bae4-4a6f-8d6f-797f491f8222.key

/etc/openvpn/easy-rsa/pki/renewed:
private_by_serial
reqs_by_serial

/etc/openvpn/easy-rsa/pki/renewed/private_by_serial:

/etc/openvpn/easy-rsa/pki/renewed/reqs_by_serial:

/etc/openvpn/easy-rsa/pki/revoked:
private_by_serial
reqs_by_serial

/etc/openvpn/easy-rsa/pki/revoked/private_by_serial:

/etc/openvpn/easy-rsa/pki/revoked/reqs_by_serial:
=============================================
::::            Self check               ::::
:: [OK] IP forwarding is enabled
:: [OK] Iptables MASQUERADE rule set
:: [OK] OpenVPN is running
:: [OK] OpenVPN is enabled (it will automatically start on reboot)
:: [OK] OpenVPN is listening on port 1194/udp
=============================================
::::      Snippet of the server log      ::::
Jan  2 18:17:51 raspberrypi ovpn-server[4778]: Initialization Sequence Completed
Jan  2 18:18:25 raspberrypi ovpn-server[559]: OpenVPN 2.4.7 arm-unknown-linux-gnueabihf [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Feb 20 2019
Jan  2 18:18:25 raspberrypi ovpn-server[559]: library versions: OpenSSL 1.1.1d  10 Sep 2019, LZO 2.10
Jan  2 18:18:25 raspberrypi ovpn-server[559]: NOTE: your local LAN uses the extremely common subnet address 192.168.0.x or 192.168.1.x.  Be aware that this might create routing conflicts if you connect to the VPN server from public locations such as internet cafes that use the same subnet.
Jan  2 18:18:25 raspberrypi ovpn-server[559]: Diffie-Hellman initialized with 2048 bit key
Jan  2 18:18:25 raspberrypi ovpn-server[559]: Outgoing Control Channel Authentication: Using 256 bit message hash 'SHA256' for HMAC authentication
Jan  2 18:18:25 raspberrypi ovpn-server[559]: Incoming Control Channel Authentication: Using 256 bit message hash 'SHA256' for HMAC authentication
Jan  2 18:18:25 raspberrypi ovpn-server[559]: TUN/TAP device tun0 opened
Jan  2 18:18:25 raspberrypi ovpn-server[559]: TUN/TAP TX queue length set to 100
Jan  2 18:18:25 raspberrypi ovpn-server[559]: /sbin/ip link set dev tun0 up mtu 1500
Jan  2 18:18:25 raspberrypi ovpn-server[559]: /sbin/ip addr add dev tun0 <IP_ADDRESS>/24 broadcast <IP_ADDRESS>
Jan  2 18:18:25 raspberrypi ovpn-server[559]: Could not determine IPv4/IPv6 protocol. Using AF_INET
Jan  2 18:18:25 raspberrypi ovpn-server[559]: Socket Buffers: R=[163840->163840] S=[163840->163840]
Jan  2 18:18:25 raspberrypi ovpn-server[559]: UDPv4 link local (bound): [AF_INET][undef]:1194
Jan  2 18:18:25 raspberrypi ovpn-server[559]: UDPv4 link remote: [AF_UNSPEC]
Jan  2 18:18:25 raspberrypi ovpn-server[559]: GID set to openvpn
Jan  2 18:18:25 raspberrypi ovpn-server[559]: UID set to openvpn
Jan  2 18:18:25 raspberrypi ovpn-server[559]: MULTI: multi_init called, r=256 v=256
Jan  2 18:18:25 raspberrypi ovpn-server[559]: IFCONFIG POOL: base=<IP_ADDRESS> size=252, ipv6=0
Jan  2 18:18:25 raspberrypi ovpn-server[559]: Initialization Sequence Completed
=============================================
::::            Debug complete           ::::
:::
::: Debug output completed above.
::: Copy saved to /tmp/debug.txt
:::
pi@raspberrypi:~ $

Must be a different problem then, let's test port forwarding:

Install tcpdump with sudo apt install tcpdump
Sniff the network interface with sudo tcpdump -i eth0 port 1194
Try to connect from your smartphone

You should see some tcpdump output. Specifically the private IP of your Raspberry Pi and the public IP of the device you are trying to connect from. Mask the client IP if you want and post the output (assuming you get any). CTRL-C to stop the packet capture.

Thanks, I rebooted everything including the router and I'm now connected perfectly. Thank you and Happy 2020!

Excellent! Happy new Year to you too.


Al/sim test

Fixes/Resolves:
N/A
Summary/Motivation:
Creates a build of FreeRTOS inside of Simulink. This is the first major step in the creation of a set of APIs between FreeRTOS and Simulink for SIL testing
Changes proposed in this PR:

Updated config files by disabling options that were not allowed
Added additional library Simulink build required
Created a test.slx and associated test script for building

NOTE: The Simulink build is failing here likely due to the lack of the proper gcc toolchains being installed into the GitHub server instance of Matlab. May have to reserve these tests to use on a private server instead.


docker stats show "-"  by used kernel "3.10.0-493.el7.x86_64"

Description
when I use  ‘docker stats’ for view how many resouces used by containers , but  it's only show like below

CONTAINER           CPU %               MEM USAGE / LIMIT   MEM %               NET I/O             BLOCK I/O           PIDS
656c012d756c        --                  -- / --             --                  -- / --             -- / --             --

Steps to reproduce the issue:

OS：centos7.2 or redhat7.2   with docker 1.12.1 or higher

2.update kernel version to "3.10.0-493.el7.x86_64"
3.docker run nginx   （or other images）
4.docker stats
Describe the results you received:
CONTAINER           CPU %               MEM USAGE / LIMIT   MEM %               NET I/O             BLOCK I/O           PIDS
656c012d756c        --                  -- / --             --                  -- / --             -- / --             --

Describe the results you expected:
CONTAINER           CPU %               MEM USAGE / LIMIT       MEM %               NET I/O               BLOCK I/O             PIDS
32a65d2fd47c        0.00%               11.88 MiB / 1.797 GiB   0.65%               367 kB / 6.476 MB     14.72 MB / 0 B        0

Additional information you deem important (e.g. issue happens only occasionally):
Output of docker version:
[root@slave02 ~]# docker version
Client:
 Version:      1.12.2
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   bb80604
 Built:
 OS/Arch:      linux/amd64

Server:
 Version:      1.12.2
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   bb80604
 Built:
 OS/Arch:      linux/amd64

Output of docker info:
[root@slave02 ~]# docker info
Containers: 1
 Running: 1
 Paused: 0
 Stopped: 0
Images: 59
Server Version: 1.12.2
Storage Driver: overlay
 Backing Filesystem: xfs
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: seccomp
Kernel Version: 3.10.0-493.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 3.702 GiB
Name: slave02
ID: GB5Z:TNP2:ANJK:R5IW:C54J:QBVO:6Q23:WVGQ:JF7M:LCIR:E5UI:T3Y5
Docker Root Dir: /data/docker
Debug Mode (client): false
Debug Mode (server): false

Additional environment details (AWS, VirtualBox, physical, etc.):
My VirtualBox version is 5.0.14 r105127
mac 10.12.1
I  reproduce  this  on vmware6.0

I'm not able to reproduce this on 3.10.0-327.36.3.el7.x86_64 (which is what DigitalOcean gives me currently);
CONTAINER           CPU %               MEM USAGE / LIMIT       MEM %               NET I/O             BLOCK I/O           PIDS
3f06252871e4        0.00%               7.559 MiB / 1.797 GiB   0.41%               1.296 kB / 648 B    6.823 MB / 0 B      0

@runcom @andrewhsu do you have a setup to test this in?

@thaJeztah sure I have it

@thaJeztah please note the kernel version is 493 not than 327, this is root cause of the report issue.

@xiaods I'm aware, that's why i asked @runcom to test; I don't have access to a setup with that kernel

I upload  the rpms  for test this！
I update kernel from 3.10.0-327.36.2.el7.x86_64  !
https://github.com/tomkulolo/kernel493.git

@thaJeztah sorry for not getting back, I'll try to spin up a RHEL vm and test this out (hopefully it's deterministic)

I can't really reproduce this either :confused:

@tomkulolo is this still an issue for you? Also, are you collecting the stats "once" or keep the command running? IIRC the -- are also shown if stats are still being collected for a container, i.e., the stats take a certain period to calculate stats.
What options / flags are set on the daemon (e.g. do you have live-restore enabled?)

@thaJeztah  it is still an issue for us, we have check the config of docker daemon, there is the detail info
[root@DXSHURENPOC01 offlinesry]# docker info
Containers: 4
Running: 1
Paused: 0
Stopped: 3
Images: 215
Server Version: 1.12.1
Storage Driver: overlay
Backing Filesystem: xfs
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: null bridge overlay host
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: seccomp
Kernel Version: 3.10.0-493.el7.x86_64
Operating System: Red Hat Enterprise Linux Server 7.2 (Maipo)
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 7.64 GiB
Name: DXSHURENPOC01
ID: Y33R:YXAT:NISS:B7MM:NXQY:3B2Q:LT6Z:L4WG:KQKI:6XQO:XDPI:WOH2
Docker Root Dir: /data/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Insecure Registries:
<IP_ADDRESS>:5001
<IP_ADDRESS>:5000
<IP_ADDRESS>/8
command docker stats  and see below:
CONTAINER           CPU %               MEM USAGE / LIMIT   MEM %               NET I/O             BLOCK I/O           PIDS
4b52badea896        --                  -- / --             --                  -- / --             -- / --             --

Hi guys:
I have a similar issue, but it's "maybe" a network issue. I'm running Rancher Server at an ISP, and the docker hosts are in AWS. I get docker stats on both hosts, can use nc -u -v $rancher_server (500|4500) and have traffic rules (in AWS) of ALLOW <IP_ADDRESS>/ in both directions.
All hosts are on CentOS 7.4, kernel 3.10.0-693.17.1.el7.x86_64. All the docker hosts in the ISP show stats, but AWS is n/a exclusively.


Regarding Python errors in Getting Started (Full)

I was trying to set up the repository using Full Guide on Ubuntu 20.04.
I faced two errors under the bsg_sv2v part of the setup. While it might just be me, I think putting up a note here might help someone else.
The errors were -

pytest-pythonpath fails to install -

black-parrot/external/bsg_sv2v/tools/pypy3/lib-python/3/distutils/cmd.py", line 103, in __getattr__
        raise AttributeError(attr)
    AttributeError: install_layout

The fix for this was to add a line - $(PIP) install --upgrade setuptools in $(VIRTUALENV_BUILD_DIR): $(PYPY3_BUILD_DIR):146

Cannot import main from virtualenv

I had virtualenv under /home/user/.local/bin, moved it to a different filename so that /usr/bin is used
usr/bin/python pointed to /etc/alternatives/python (which again pointed to /usr/bin/python3), replaced that with ln -s /usr/bin/python2 /usr/bin/python (this part might be optional in some systems)

Thanks for the report!

Yep I also ran into the first issue and adding in that line $(PIP) install --upgrade setuptools helped.
The second issue you mentioned probably comes down to how your virtualenv is set up so I didn't encounter that.
Additionally my pretty clean ubuntu install was missing cmake.

Thanks for your comments @developandplay.
I would agree that the 2nd point might be specific to my system. The PATH was polluted as these executables were both in ~/.local and /usr/bin

@stdavids see bug report for bsg_sv2v

@taylor-bsg @stdavids I ran into a similar problem running make prep on dev (c0acd493) when building on Ubuntu 20.04 LTS running on WSL2 (Windows Subsystem for Linux v2). Fix as reported by @WasabiFan was the following:
cd tools/bsg_sv2v
source tools/virtual_env/bin/activate
python -m pip install -U setuptools

Should that be a PR for here or bsg_sv2v?
Aside: I think we should commit to WSL+Ubuntu as a platform rather than Docker for Windows.
Mac I'm not sure, possible Docker is the best thing there...

Looks like this commit made the change already: https://github.com/bespoke-silicon-group/bsg_sv2v/commit/0b6282083aeca4b5d2e03ebbcec377cd22502952
Bumping the bsg_sv2v submodule in this repo should be sufficient.

Awesome, thanks for pointing that out @WasabiFan! I am working on some minor build fixes / fine-tuning so I will incorporate a bump of bsg_sv2v that hopefully fixes the issue.

@dpetrisko correct, shouldn't really be a fix in BP repo aside from bumping submodule

#836 should address outstanding issues here by bumping bsg_sv2v

This should be fixed on dev. Closing issue.


Timeline for zemn.me

Timeline for zemn.me

Stack created with Sapling. Best reviewed with ReviewStack.

-> #3217
#3216

add a thing saying I'll consult for legal cases.


reference existing containerApps revision hangs

Bicep version
0.15.31
When i try to reference an existing container app revision, that module never finishes.
See https://github.com/Azure/bicep-types-az/issues/1435
they asked to mentioned it over here
resource test 'Microsoft.App/containerApps/revisions@2022-10-01' existing ={
  name: 'algemeen-d-app-adr/algemeen-d-app-adr--v1'
}
output fqdn string = test.properties.fqdn

I can confirm this is still an issue


Update NDK in CI

App used NDK 26.2.11394342
1
2
Android NDK

NDK in CI is intentional. Look at the Compatibility section in AGP Release Notes.
If we raise NDK above 25.1.x, the libs won't be stripped, for example, thus the APK will be much larger. Also note that while building, Gradle uses version from Gradle scripts and AGP's default version for the rest of the stuff, like stripping. I have tested it thoroughly.

@thestinger following this criteria, we should set JDK 21 instead of 17 in the CI, too.


New rule: function-creation-params-newline

Clear and concise description of the problem
I didn't find any rule for linting parameters (singleline / multiline) when function is created (function declaration, function expression, arrow function expression)
Scenarios which are not linted:
// FunctionDeclaration
function a (b, c,
d) {}
function a (
b, c,
d,
) {}

// FunctionExpression
const a = function (b, c,
d) {}
const a = function (
b, c,
d,
) {}

// ArrowFunctionExpression
const a = (b, c,
d) => {}
const a = (
b, c,
d,
) => {}

I would like to create such (or please help me to find a rule that can solve the described problem)
Suggested solution
Suggested solution is to copy the rule function-call-argument-newline and adapt it to function creation with the same options: ["always", "never", "consistent"]
Alternative
Another solution is to rename the function-call-argument-newline rule with including logic for function parameters too
Additional context
If this rule is accepted I would like to know your opinion on

rule name (I am not sure how to abstract function creation naming)
where to locate the rule (js or plus)

Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guide.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

Contributes

[X] If this feature request is accepted, I am willing to submit a PR to fix this issue

duplicate of #173


Base workspace fails on subnet parallel operation

Describe the bug
Creating the base workspace might fail due the a subnet not being "fully" ready but TF thinks it is...
This has happened to other resources as well (not just the file private endpoint).
Cannot proceed with operation because resource /subscriptions/something/resourceGroups/rg-something-ws-82af/providers/Microsoft.Network/virtualNetworks/vnet-something-ws-82af/subnets/ServicesSubnet used by resource /subscriptions/something/resourceGroups/rg-something-ws-82af/providers/Microsoft.Network/networkInterfaces/stgfilepe-something-ws-82af.nic.cec0957c-c2e1-4bc7-87f6-c95111534cd4 is not in Succeeded state

True failed 4d68df6c-2cc7-4873-8b16-f03b1e3282af: Error context message = Unable to find image '.azurecr.io/tre-workspace-base@sha256:6b8c17c6dd0e1836996a77e279744f4cd43b1a81320066a71c2d118a032ef4cc' locally ╷ │ Error: waiting for creation of Private Endpoint "stgfilepe--ws-82af" (Resource Group "rg--ws-82af"): Code="RetryableError" Message="A retryable error occurred." Details=[{"code":"ReferencedResourceNotProvisioned","message":"Cannot proceed with operation because resource /subscriptions//resourceGroups/rg--ws-82af/providers/Microsoft.Network/virtualNetworks/vnet--ws-82af/subnets/ServicesSubnet used by resource /subscriptions//resourceGroups/rg--ws-82af/providers/Microsoft.Network/networkInterfaces/stgfilepe--ws-82af.nic.cec0957c-c2e1-4bc7-87f6-c95111534cd4 is not in Succeeded state. Resource is in Updating state and the last operation that updated/is updating the resource is PutSubnetOperation."}] │  │   with azurerm_private_endpoint.stgfilepe, │   on storage.tf line 29, in resource "azurerm_private_endpoint" "stgfilepe": │   29: resource "azurerm_private_endpoint" "stgfilepe" { │  ╵ Error: error running command /cnab/app/terraform terraform apply -auto-approve -input=false -var address_space=<IP_ADDRESS>/24 -var location=** -var shared_storage_quota=50 -var tre_id=*** -var tre_resource_id=4d68df6c-2cc7-4873-8b16-f03b1e3282af: exit status 1 Error: mixin execution failed: exit status 1 Error: 1 error occurred: 	* container exit code: 1, message:    az login --identity -u 4c1a5d14-72a0-433f-b96b-4d96d3a6e6df && az acr login --name *** && porter install "4d68df6c-2cc7-4873-8b16-f03b1e3282af"  --reference .azurecr.io/tre-workspace-base:v0.1.10  --param address_space="<IP_ADDRESS>/24" --param arm_use_msi="true" --param azure_location="" --param id="4d68df6c-2cc7-4873-8b16-f03b1e3282af" --param tfstate_container_name="tfstate" --param tfstate_resource_group_name="***mgmt" --param tfstate_storage_account_name="state" --param tre_id="" --cred ./vmss_porter/azure.json --allow-docker-host-access --force && porter show 4d68df6c-2cc7-4873-8b16-f03b1e3282af

Didn't see it for a while so will close for now.

Didn't see it for a while so will close for now.


Wrong declaration!

Very sorry to report this, but it just doesn't seem to be working properly:
This is the incorrect reference, as directed by starscope:

That reference is actually to a private method, so it is certainly incorrect.
This is the correct reference, as directed by rubymine:

Thanks for the report, I'm going to need a bit more information in order to track this down.

What version of starscope are you using?
Is this incorrect reference via a starscope query, or via ctags/cscope export?
Is the source code in question publicly available? If so, where is it? If not, can you send me a minimal sample to reproduce with?

Thanks,
Evan

Based on https://stackoverflow.com/questions/32458486/is-there-a-ruby-specific-alternative-to-ctags I'm going to assume you were searching via ctags, in which case Sergio's comment is correct: "short of actually running your code, there's no bulletproof way of dereferencing names".
However, there is at least a partial workaround. If you generate a cscope database as well (using starscope) and configure vim correctly (I believe you want set cscopetag and set csto=1 in your .vimrc but I'm not 100% sure) then when it finds an ambiguous symbol it will ask you which one you want to jump to. This isn't quite as awesome as it just going to the right one automatically, but it's a lot better than just going to the wrong one :)

eapache sorry for not getting back earlier. thankyou!


Coverter for Range operator.

Similar to tf.range this converter creates a sequence of numbers defined by (start, limit, delta) any of which could be DT_FLOAT, DT_HALF, or DT_INT32. Like tf.range the output is a tensor of type DT_FLOAT unless all three (start, limit, delta) are of type DT_INT32. In this case, the output will also be a tensor of type DT_INT32.
The implementation is complete for parameters passed as the weights. When parameters are passed as tensors, (start, limit, delta) can only be non-negative DT_INT32 type.

Replacement for PR#55674


Added a GFX area update callback.

Added a new callback function allowing to update decoded GFX image data to some backend buffer. (e.g. CPU to GPU update)

@freerdp-bot test


I need to reproduce an Azure media file but it seems I can not get it to work

Use case
I'm trying to reproduce an Azure Media File like this 'https://myURL.ism/manifest' but I have not been able to reproduce the live streaming. I'm using the dash URL because I'm trying to reproduce it in a web page(chrome)
@override
void initState() {
super.initState();
 videoPlayerController = VideoPlayerController.network(
'https://myURL.ism/manifest(format=mpd-time-csf)', formatHint: VideoFormat.dash);
 videoPlayerFuture = videoPlayerController.initialize();
    }
Question
Is there any configuration I am missing for this to work properly? I have seen this in stackoverflow but it did not help much.
stackAnswer

Hi @milodude
https://myURL.ism/manifest(format=mpd-time-csf)', formatHint: VideoFormat.dash);
Are you ending the video with proper extension?  Looks like no extension here
If the problem persists, can you please provide your flutter doctor -v with the upgrade, complete reproducible minimal code sample, and complete flutter run --verbose logs running the minimal code sample?
Thank you

Hi taha,
Firs of all thank you for your quick response.
1-

2-`import 'package:flutter/material.dart';
import 'package:video_player/video_player.dart';
class TestVideo extends StatefulWidget {
static const String routeName = '/video';
@override
_TestVideoState createState() => _TestVideoState();
}
class _TestVideoState extends State {
VideoPlayerController videoPlayerController;
Future videoPlayerFuture;
@override
void initState() {
super.initState();
videoPlayerController = VideoPlayerController.network(
'yourVideoUrl.ism/manifest(format=mpd-time-csf)',
formatHint: VideoFormat.dash);
videoPlayerFuture = videoPlayerController.initialize();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Flutter Video Player Sample')),
body: FutureBuilder(
future: videoPlayerFuture,
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
return AspectRatio(
aspectRatio: videoPlayerController.value.aspectRatio,
child: VideoPlayer(videoPlayerController),
);
} else {
return Center(child: CircularProgressIndicator());
}
},
),
floatingActionButton: FloatingActionButton(
onPressed: () {
setState(() {
videoPlayerController.value.isPlaying
? videoPlayerController.pause()
: videoPlayerController.play();
});
},
child: Icon(
videoPlayerController.value.isPlaying
? Icons.pause
: Icons.play_arrow,
),
));
}
@override
void dispose() {
videoPlayerController.dispose();
super.dispose();
}
}`
This example was taken from the original package. If you use any mp4 video it works properly.
3-

I have been using formatHint to complete the extension for a dash file. Also tried adding .mpd in the end of the url to test it manually.
Thanks in advance.

Hi @milodude
Thanks for all the details, Unfortunately, I don't have a test link for Azure Media File to reproduce

@milodude
Is the issue only on the web? Does it stream when running on mobile?

Yes, it works properly in mobile. Web it is the thing. Dunno if theres any solution about this.

Are you able to play that video in the browser in a non-Flutter context? (E.g., a simple page with <video>).

Yes, I tried it in https://ampdemo.azureedge.net/ where it supports live streaming.

Hello, I'm sorry to be persistent but was wondering if there is any updates on this issue.

Nobody is actively working on this issue, so there are no updates. If there were updates, you would see them here, so it's not necessary to ask.

Let me know if I can help you somehow.

Anyone interested in investigating this further is certainly welcome to do so.

Hello, I have talked to my PM and he has agreed for me to search for a way  to fix this issue. They are willing to pay for your work in order to push these changes in. Would you be interested in make these changes? If so I would appreciate if you contact me and send me a budget estimation. Thanks in advanced.